[firebase-br] Ajuda com SQL

Elton da Motta Barbosa embarbosa em gmail.com
Ter Jun 16 09:37:57 -03 2009


Fala Roberto,

   olha só amigo, como já foi dito aí nas outras mensagens, vc não vai
conseguir o resultado esperado usando o group by visto que ou ele só
vai resultar em um registro agrupado ou vai mostrar vários somatórios
parciais...
  Além do que, vc não explicou como seria esse SUM: somaria os débitos
do mesmo cliente, do mesmo Veículo, mesma marca, modelo e situação? ou
seria um total de cada cliente independente do veículo? ou seria do
veículo independente dos clientes? ou seria um somatório da marca
independente do veículo e cliente? ou seria um somatório pela data
tipo total no dia? etc...
  A melhor opção é vc passar essa conta pra aplicação, (por exemplo se
for um gerenciador de relatório tipo quickReport, fastReports,
fortesReports etc... usar um componente pra isso).
  Em todo caso, não recomendo, na verdade recomendo não usar se seu
banco for muiiiito grande, mas vc pode fazer um select dentro do
select ;)

deixa explicar com o exemplo aí:

SELECT CodigoOS, CodigoCliente, DataEntrada, Veiculo, Marca,
Modelo, Situacao, TotalOS, (SELECT CodigoCliente, Veiculo, Marca,
Modelo, Situacao, sum(TotalOS)
             FROM T3_OS
            WHERE DataEntrada >= #" & Format(CDate(Data1.Value),
"YYYY-MM-DD") & "#
            AND DataEntrada <= #" & Format(CDate(Data2.Value),
"YYYY-MM-DD") & "#
GROUP BY CodigoCliente, Veiculo, Marca,
Modelo, Situacao)
             FROM T3_OS
            WHERE DataEntrada >= #" & Format(CDate(Data1.Value),
"YYYY-MM-DD") & "#
            AND DataEntrada <= #" & Format(CDate(Data2.Value),
"YYYY-MM-DD") & "#
            ORDER BY CodigoOS DESC

Nesse caso o Select interno vai agrupar pelo Cliente, Veículo, Marca,
Modelo e situação.
se não quiser algum desses agrupamentos então vc remove do select
interno e da cláusula GROUP BY...

Se não for isso aí explica melhor blz?

até,




Mais detalhes sobre a lista de discussão lista