Fórum Duvida Select Where Gropy by e Union #59046
31/10/2007
0
O codigo abaixo nao está retornando os totais diarios dos lancamentos e compra e venda na mesma linha. Alguem poderia mostrar aonde esta a falha ? E com base no mesma idéia preciso totalizar por MOEDA. Alguem me ajuda a escrever o código ?
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add(´select DATLANCTO, COUNT(*) as QTECPA, SUM(QTEMOEDA) as TOTCP1, SUM(TAXCAMBIO*QTEMOEDA) as TOTCP2, 0 as QTEVDA, 0.00 as TOTVD1, 0.00 aS TOTVD2 from BOLETOC where DATLANCTO between :pDT1 and :pDT2 group by DATLANCTO´);
IBQuery1.SQL.Add(´ union ´);
IBQuery1.SQL.Add(´select DATLANCTO, 0 as QTECPA, 0.00 as TOTCP1, 0.00 aS TOTCP2, COUNT(*) as QTEVDA, SUM(QTEMOEDA) as TOTVD1, SUM(TAXCAMBIO*QTEMOEDA) as TOTVD2 from BOLETOV where DATLANCTO between :pDT1 and :pDT2 group by DATLANCTO´);
IBQuery1.ParamByName(´pDT1´).Value := DateEdit1.Date;
IBQuery1.ParamByName(´pDT2´).Value := DateEdit2.Date;
IBQuery1.Open;
Desde já agradeço.
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add(´select DATLANCTO, COUNT(*) as QTECPA, SUM(QTEMOEDA) as TOTCP1, SUM(TAXCAMBIO*QTEMOEDA) as TOTCP2, 0 as QTEVDA, 0.00 as TOTVD1, 0.00 aS TOTVD2 from BOLETOC where DATLANCTO between :pDT1 and :pDT2 group by DATLANCTO´);
IBQuery1.SQL.Add(´ union ´);
IBQuery1.SQL.Add(´select DATLANCTO, 0 as QTECPA, 0.00 as TOTCP1, 0.00 aS TOTCP2, COUNT(*) as QTEVDA, SUM(QTEMOEDA) as TOTVD1, SUM(TAXCAMBIO*QTEMOEDA) as TOTVD2 from BOLETOV where DATLANCTO between :pDT1 and :pDT2 group by DATLANCTO´);
IBQuery1.ParamByName(´pDT1´).Value := DateEdit1.Date;
IBQuery1.ParamByName(´pDT2´).Value := DateEdit2.Date;
IBQuery1.Open;
Desde já agradeço.
Eremita
Curtir tópico
+ 0
Responder
Posts
03/11/2007
Sql.pedrojr
acrescente um select com os SUM e COUNT sendo o query que voce escreve a tabela que sera lida
-----
IBQuery1.Close;
IBQuery1.SQL.Clear;
[b:64334c4836]acrecentar:[/b:64334c4836]
IBQUEY1.SQL.ADD(´Select DATLANCTO, SUM(QTECPA) AS QTECPA, SUM
(TOTCP1) AS TOTCP1, SUM(TOTCP2) AS TOTCP2, SUM(QTEVDA) AS QTEVDA, SUM(TOTVD1) AS TOTVD1, SUM(TOTVD2) AS TOTVD2 FROM (´)
[b:64334c4836]codigoatual:[/b:64334c4836]
IBQuery1.SQL.Add(´select DATLANCTO, COUNT(*) as QTECPA, SUM(QTEMOEDA) as TOTCP1, SUM(TAXCAMBIO*QTEMOEDA) as TOTCP2, 0 as QTEVDA, 0.00 as TOTVD1, 0.00 aS TOTVD2 from BOLETOC where DATLANCTO between :pDT1 and :pDT2 group by DATLANCTO´);
IBQuery1.SQL.Add(´ union ´);
IBQuery1.SQL.Add(´select DATLANCTO, 0 as QTECPA, 0.00 as TOTCP1, 0.00 aS TOTCP2, COUNT(*) as QTEVDA, SUM(QTEMOEDA) as TOTVD1, SUM(TAXCAMBIO*QTEMOEDA) as TOTVD2 from BOLETOV where DATLANCTO between :pDT1 and :pDT2 group by DATLANCTO´);
[b:64334c4836]acrecentar:[/b:64334c4836]
IBQuery1.SQL.Add(´ ) GROUP BY DATLANCTO ´)
IBQuery1.ParamByName(´pDT1´).Value := DateEdit1.Date;
IBQuery1.ParamByName(´pDT2´).Value := DateEdit2.Date;
IBQuery1.Open;
-----
IBQuery1.Close;
IBQuery1.SQL.Clear;
[b:64334c4836]acrecentar:[/b:64334c4836]
IBQUEY1.SQL.ADD(´Select DATLANCTO, SUM(QTECPA) AS QTECPA, SUM
(TOTCP1) AS TOTCP1, SUM(TOTCP2) AS TOTCP2, SUM(QTEVDA) AS QTEVDA, SUM(TOTVD1) AS TOTVD1, SUM(TOTVD2) AS TOTVD2 FROM (´)
[b:64334c4836]codigoatual:[/b:64334c4836]
IBQuery1.SQL.Add(´select DATLANCTO, COUNT(*) as QTECPA, SUM(QTEMOEDA) as TOTCP1, SUM(TAXCAMBIO*QTEMOEDA) as TOTCP2, 0 as QTEVDA, 0.00 as TOTVD1, 0.00 aS TOTVD2 from BOLETOC where DATLANCTO between :pDT1 and :pDT2 group by DATLANCTO´);
IBQuery1.SQL.Add(´ union ´);
IBQuery1.SQL.Add(´select DATLANCTO, 0 as QTECPA, 0.00 as TOTCP1, 0.00 aS TOTCP2, COUNT(*) as QTEVDA, SUM(QTEMOEDA) as TOTVD1, SUM(TAXCAMBIO*QTEMOEDA) as TOTVD2 from BOLETOV where DATLANCTO between :pDT1 and :pDT2 group by DATLANCTO´);
[b:64334c4836]acrecentar:[/b:64334c4836]
IBQuery1.SQL.Add(´ ) GROUP BY DATLANCTO ´)
IBQuery1.ParamByName(´pDT1´).Value := DateEdit1.Date;
IBQuery1.ParamByName(´pDT2´).Value := DateEdit2.Date;
IBQuery1.Open;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)