Select com UNION ALL

Delphi

30/09/2005

Olá amigos, preciso unir duas tabelas assim

Select conta,
Sum(Case When campo1=200501 then campo_Debito Else 0 End) As JAN
Sum(Case When campo1=200502 then campo_Debito Else 0 End) As FEV
Sum(Case When campo1=200503 then campo_Debito Else 0 End) As MAR
From TAB_01
UNION ALL
Select conta,
Sum(Case When campo1=200501 then campo_Debito Else 0 End) As JAN
Sum(Case When campo1=200502 then campo_Debito Else 0 End) As FEV
Sum(Case When campo1=200503 then campo_Debito Else 0 End) As MAR
From TAB_02

Essa é a chamada mas me traz duas vezes a mesma conta.
O q preciso, é em apenas uma chamada me sumarizar usando uma Query;

Com uma VIEW fica lento pois as tabelas tem 5.000.000.
Um SUB SELECT nem pensar pois ai q n anda
Com SPs eu faço tranquilamente mas a manutenção nos .GDB(187 clientes) é terrivel. Se eu conseguir chamar assim altero apenas o .EXE e eliminos muitas SPs dos .GDBs

Obrigado


Orpolonio

Orpolonio

Curtidas 0

Respostas

Beppe

Beppe

30/09/2005

Olá. . .

Tvz algo assim:

Select conta,
Sum(Case When t1.campo1=200501 then t1.campo_Debito Else 0 End) + Sum(Case When t2.campo1=200501 then t2.campo_Debito Else 0 End) As JAN
Sum(Case When t1.campo1=200502 then t1.campo_Debito Else 0 End) + Sum(Case When t2.campo1=200502 then t2.campo_Debito Else 0 End) As FEV
Sum(Case When t1.campo1=200503 then t1.campo_Debito Else 0 End) + Sum(Case When t2.campo1=200503 then t2.campo_Debito Else 0 End) As MAR
From TAB_01 t1
natural join TAB_02 t2



GOSTEI 0
POSTAR