|
Postada em 18/12/2004 06:36 hs
Tenho uma tabela LIVRODEDEBITO com os campos data, vencimento e valor Gostaria de somar os valores mes a mes quando a data = vencimento e qdo a data <> vencimento da seguinte maneira para apresentar num grid. MES TITULO VALOR 01/2004 a vista 5000,00 (a vista -> data = vencimento) 01/2004 a prazo 1000,00 (a prazo -> data <> vencimento) total 6000,00 02/2004 a vista 300,00 02/2004 a prazo 1000,00 total 1300,00 Como faria a consulta em SQL . Tentei igualar o month(data) mas dá erro no Select. Não sei como fazer a instrução .
|
|
|
|
|
Postada em 20/12/2004 08:25 hs
usa essa consulta de referência cruzada, o período deve ser de um ano, pois cada coluna é um mês. eu fiz com os mesmos nomes de tabela e campo ... TRANSFORM Sum(DebitoValor.Valor) AS SomaDeValor SELECT Iif(DebitoValor.Vencimento = DebitoValor.Data, "A VISTA", "A PRAZO") AS PGTO FROM DebitoValor WHERE (((DebitoValor.Data) Between #1/1/2004# And #12/31/2004#)) GROUP BY Iif(DebitoValor.Vencimento = DebitoValor.Data, "A VISTA", "A PRAZO") PIVOT Month([Data]);
|
|
|
|
Postada em 20/12/2004 16:34 hs
Não entendi uma coisa: pq data <> vencimento?? Não seria data < vencimento?? Pois se vc paga a prazo então a data do pagamento seria "maior" q a data do pagamento a vista. Eu quero dizer assim: pagamento a vista 20/12/2004, pagamento a prazo 22/12/2004. Só um exemplo. Pq se temos data <> vencimento então pagto a vista 20/12/2004 e pagto a prazo 19/12/2004 também estaria correto. Bom, fazendo a prazo -> data < vencimento então vc pode fazer assim: SELECT month(data) AS Mes, sum(valor) AS Total FROM Tab_LivroDeDebito WHERE data=vencimento Or data < vencimento GROUP BY month(data); veja se dá certo... fiz um pequeno teste e retornou conforme vc queria, vamos ver se no seu banco de dados, q contém os dados reais, vc obtém o resultado desejado... qq coisa é só postar novamente t+
|
|
|
|