Como utilizar Cláusula quot;PLANquot; ?
Olá,
Preciso de ajuda para executar um sql: ´Select sum(t1.a), sum(t1.b) from t1, t2 where t1.cod = t2.cod´ onde ao final do ´where´ necessito adicionar a clausula ´Plan´ contendo um index.
Preciso de ajuda para executar um sql: ´Select sum(t1.a), sum(t1.b) from t1, t2 where t1.cod = t2.cod´ onde ao final do ´where´ necessito adicionar a clausula ´Plan´ contendo um index.
Pericles
Curtidas 0
Respostas
Afarias
07/10/2003
nesse seu SQL não me parece haver necessidade em usar o PLAN, mas seria algo como::
select sum(t1.a), sum(t1.b) from t1 inner join t2 on (t1.cod = t2.cod)
PLAN JOIN (T1 NATURAL, T2 INDEX IX_COD)
veja o IB SQL Help no comando SELECT
T+
select sum(t1.a), sum(t1.b) from t1 inner join t2 on (t1.cod = t2.cod)
PLAN JOIN (T1 NATURAL, T2 INDEX IX_COD)
veja o IB SQL Help no comando SELECT
T+
GOSTEI 0
Pericles
07/10/2003
A.Farias,
Obrigado pela resposta, porém não consegui executar mesmo assim,
é possível vc analisar meu sql?
Qdo. executo via IBConsole (InterBase6) este sql gera a seguinte msg:
´Dynamic SQL Error
SQL error code = -104
Token unknown - line 12, char 39
IDX_FC0002_CONTA_DATA
Statement: SELECT ....´
SELECT
SUM(FC0002.VLR_MOVTO) AS Saldo,
SUM(FC0002.VLR_MOVTO) AS SaldoOriginal
FROM FC0002 INNER JOIN FC0003 ON (FC0002.CIA = FC0003.CIA AND
FC0002.FILIAL = FC0003.FILIAL AND
FC0002.COD_LANCTO = FC0003.COD_LANCTO)
WHERE FC0003.TP_LANCTO IN (´N´,´L´)
AND FC0002.CIA = 1
AND FC0002.FILIAL = 1
AND FC0002.COD_CONTA = 1
AND FC0002.DT_LANCTO < ´10/07/2003´ /*MM/DD/YYYY*/
PLAN JOIN (FC0003 NATURAL, FC0002 INDEX IDX_FC0002_CONTA_DATA)
/* Onde meu index IDX_FC0002_CONTA_DATA é o seguinte:
INDEX IDX_FC0002_CONTA_DATA ON FC0002 (CIA, FILIAL, COD_CONTA, DT_LANCTO) */
Desde já agradeço.
Obrigado pela resposta, porém não consegui executar mesmo assim,
é possível vc analisar meu sql?
Qdo. executo via IBConsole (InterBase6) este sql gera a seguinte msg:
´Dynamic SQL Error
SQL error code = -104
Token unknown - line 12, char 39
IDX_FC0002_CONTA_DATA
Statement: SELECT ....´
SELECT
SUM(FC0002.VLR_MOVTO) AS Saldo,
SUM(FC0002.VLR_MOVTO) AS SaldoOriginal
FROM FC0002 INNER JOIN FC0003 ON (FC0002.CIA = FC0003.CIA AND
FC0002.FILIAL = FC0003.FILIAL AND
FC0002.COD_LANCTO = FC0003.COD_LANCTO)
WHERE FC0003.TP_LANCTO IN (´N´,´L´)
AND FC0002.CIA = 1
AND FC0002.FILIAL = 1
AND FC0002.COD_CONTA = 1
AND FC0002.DT_LANCTO < ´10/07/2003´ /*MM/DD/YYYY*/
PLAN JOIN (FC0003 NATURAL, FC0002 INDEX IDX_FC0002_CONTA_DATA)
/* Onde meu index IDX_FC0002_CONTA_DATA é o seguinte:
INDEX IDX_FC0002_CONTA_DATA ON FC0002 (CIA, FILIAL, COD_CONTA, DT_LANCTO) */
Desde já agradeço.
GOSTEI 0