Ajuda nessa consulta SQL
27/01/2006
0
DMX.CdsComandas2.Close; DMX.CdsComandas2.CommandText := ´SELECT CODPRO, SUM(CAST(QNTPRO AS FLOAT)) AS QNTTOT, SUM(CAST(QNTPRO AS FLOAT) * CAST(PREPRO AS FLOAT)) AS PRETOT FROM COMANDAS2, WHERE NUMDOC IN (SELECT NUMDOC FROM COMANDAS1 WHERE DATDOC BETWEEN :DATINI AND :DATFIN) GROUP BY CODPRO´; DMX.CdsComandas2.Params.ParamByName(´DATINI´).AsDate := StrToDate(EDatini.Text); DMX.CdsComandas2.Params.ParamByName(´DATFIN´).AsDate := StrToDate(EDatfin.Text); DMX.CdsComandas2.Open;
Estou totalizando a venda por produtos, porem tenho 2 problemas que eu nao consegui resolver, primeiro quero colocar o nome do produto que esta na tabela PRODUTOS, e segundo como podem ver o codigo ficou enorme e preciso ainda totalizar outro campo, so que quando acrescento o outro campo me retorna erro de tamanho da string 255 caracteres, como posso resolver esses 2 problemas?
Abs e obrigado
Felipeiw
Curtir tópico
+ 0
Responder
Posts
27/01/2006
Emerson Nascimento
tente assim:
with DMX.CdsComandas2 do begin Close; CommandText := ´SELECT ´+ ´ CM2.CODPRO, SUM(CM2.QNTPRO) QNTTOT, ´+ ´ SUM(CM2.QNTPRO * CM2.PREPRO) PRETOT, ´+ ´ MAX(PROD.DESCRICAO) DESCRICAO ´+ ´FROM ´+ ´ COMANDAS2 CM2 ´+ ´LEFT JOIN PRODUTOS PROD ´+ ´ ON (PROD.CODPRO = CM2.CODPRO) ´+ ´WHERE ´+ ´ CM2.NUMDOC IN ´+ ´ (SELECT NUMDOC FROM COMANDAS1 ´+ ´ WHERE DATDOC BETWEEN :DATINI AND :DATFIN) ´+ ´GROUP BY CODPRO ´; Params.ParamByName(´DATINI´).AsDate := StrToDate(EDatini.Text); Params.ParamByName(´DATFIN´).AsDate := StrToDate(EDatfin.Text); Open; end;
Responder
Clique aqui para fazer login e interagir na Comunidade :)