wagner sá Posted January 12, 2012 Report Share Posted January 12, 2012 Boa tarde a todos,Tenho a tabela abaixo,Credito dia mes ano960,00 3 3 20112.000,00 4 3 20114.900,00 15 3 20114.900,00 24 3 20114.900,00 31 3 20114.900,00 5 4 20114.600,00 5 4 20114.900,00 14 4 20114.635,87 14 4 20111.997,00 19 4 20111.000,00 20 4 20114.900,00 25 4 20112.000,00 28 4 20114.900,00 2 5 20112.000,00 6 5 20114.900,00 9 5 20112.722,49 11 5 2011400,00 16 5 20114.900,00 17 5 20113.000,00 23 5 20114.900,00 30 5 20114.900,00 8 6 2011500,00 14 6 20114.900,00 20 6 20114.900,00 22 6 20113.984,25 22 6 20114.900,00 5 7 20114.900,00 12 7 20114.900,00 19 7 20114.900,00 25 7 20114.900,00 26 7 2011300,00 26 7 2011209,05 27 7 201146,06 27 7 20114.900,00 1 8 20114.900,00 16 8 20114.900,00 19 8 20114.900,00 19 8 20114.900,00 19 8 20114.900,00 6 9 20114.900,00 9 9 20114.900,00 14 9 20114.900,00 19 9 20113.000,00 19 9 20114.900,00 21 9 20114.900,00 21 9 20114.900,00 10 10 20114.900,00 20 10 20114.900,00 1 11 20114.900,00 24 11 20114.900,00 29 11 20114.900,00 12 12 20114.900,00 21 12 2011obs: a data esta em campos separados (dia), (mes) e (ano).Preciso fazer um sql que me de o somatório dos valores do "credito", até uma data especifica (a ser escolhida pelo usuário) (ex: 20/12/2011).Escrevi este "sql" mas não esta funcionando !SELECT sum(cxcd.credito) AS creditosFROM credito_caixa AS cxcdWHERE cxcd.ano=2011 And cxcd.mes<=12 And cxcd.dia<=20;O problema esta no dia, o sql só esta considerando créditos até o dia "20", mas em alguns meses, houve créditos além do dia "20".Se alguém puder ajudar,Abraços,Wagner Quote Link to comment Share on other sites More sharing options...
0 fulvio Posted January 12, 2012 Report Share Posted January 12, 2012 Boa tarde Wagner, O problema de se trabalhar com data separada dia/mes/ano, é exatamente este: dificultadade na hora de resgatar intervalos entre datas. Como o sql não trata os campos como sendo DATA, fica muito dificil de manipular os campos assim. Creio que seja praticamente impossível, pois o sql não vai identificar uma cronologia correta. O melhor dica seria a concatenação dos dia/mes/ano, gerando uma data "correta" para o sql. Desta forma, conseguirá realizar a soma. O problema com certeza não está na função SUM, mas sim no formato da data. Quote Link to comment Share on other sites More sharing options...
0 wagner sá Posted January 13, 2012 Author Report Share Posted January 13, 2012 Valeu Fulvio,Já esperava por esta resposta !A decisão de usar esta estrutura de data, foi devido a migração de mais de 200 mil registros de uma base antiga em access.Vou fazer a "concatenação", não tem jeito.Muito obrigado,Wagner Quote Link to comment Share on other sites More sharing options...
0 fulvio Posted January 13, 2012 Report Share Posted January 13, 2012 Algumas estruturas realmente utilizam as datas desta forma. Já vi vários aplicativos novos assim, principalmente via web... Precisando estamos ai! :.) Quote Link to comment Share on other sites More sharing options...
0 peneju Posted January 29, 2012 Report Share Posted January 29, 2012 Oi pessoal.Tava lendo aqui o forum, pensei no seguinte:SELECT sum(cxcd.credito) AS creditosFROM credito_caixa AS cxcdWHERE (cxcd.ano=2011 And cxcd.mes<=12) OR ( cxcd.ano=2011 And cxcd.mes=12 And cxcd.dia<=20);Acho que da pra fazer assim[]'s Quote Link to comment Share on other sites More sharing options...
0 fulvio Posted January 30, 2012 Report Share Posted January 30, 2012 Bom dia peneju, Esta sintaxe pode funcionar sim, mas o sql não conseguisrá identificar uma cronologia.... Um exemplo: Pegar a quantida de inserções entre 20-11-11 e 10-12-11. você terá um grande problema com o campo DIA, pois terá que pegar os dias maiores que 20 e menores que 10. Perceba que pensando em data, a idéia está correta. Mas pensado em apenas números inteiros, o interavalo lógica está incorreto. O resultado não será correto. Terá q levar em consideração o mês. Assim ficará mais fácil a concatenação dos campos em datas. A pesquisa será bem mais direta e simples!! :.) Quote Link to comment Share on other sites More sharing options...
0 peneju Posted February 2, 2012 Report Share Posted February 2, 2012 A cronologia não tem como mesmo.[]'s Quote Link to comment Share on other sites More sharing options...
Question
wagner sá
Boa tarde a todos,
Tenho a tabela abaixo,
Credito dia mes ano
960,00 3 3 2011
2.000,00 4 3 2011
4.900,00 15 3 2011
4.900,00 24 3 2011
4.900,00 31 3 2011
4.900,00 5 4 2011
4.600,00 5 4 2011
4.900,00 14 4 2011
4.635,87 14 4 2011
1.997,00 19 4 2011
1.000,00 20 4 2011
4.900,00 25 4 2011
2.000,00 28 4 2011
4.900,00 2 5 2011
2.000,00 6 5 2011
4.900,00 9 5 2011
2.722,49 11 5 2011
400,00 16 5 2011
4.900,00 17 5 2011
3.000,00 23 5 2011
4.900,00 30 5 2011
4.900,00 8 6 2011
500,00 14 6 2011
4.900,00 20 6 2011
4.900,00 22 6 2011
3.984,25 22 6 2011
4.900,00 5 7 2011
4.900,00 12 7 2011
4.900,00 19 7 2011
4.900,00 25 7 2011
4.900,00 26 7 2011
300,00 26 7 2011
209,05 27 7 2011
46,06 27 7 2011
4.900,00 1 8 2011
4.900,00 16 8 2011
4.900,00 19 8 2011
4.900,00 19 8 2011
4.900,00 19 8 2011
4.900,00 6 9 2011
4.900,00 9 9 2011
4.900,00 14 9 2011
4.900,00 19 9 2011
3.000,00 19 9 2011
4.900,00 21 9 2011
4.900,00 21 9 2011
4.900,00 10 10 2011
4.900,00 20 10 2011
4.900,00 1 11 2011
4.900,00 24 11 2011
4.900,00 29 11 2011
4.900,00 12 12 2011
4.900,00 21 12 2011
obs: a data esta em campos separados (dia), (mes) e (ano).
Preciso fazer um sql que me de o somatório dos valores do "credito", até uma data especifica (a ser escolhida pelo usuário) (ex: 20/12/2011).
Escrevi este "sql" mas não esta funcionando !
SELECT sum(cxcd.credito) AS creditos
FROM credito_caixa AS cxcd
WHERE cxcd.ano=2011 And cxcd.mes<=12 And cxcd.dia<=20;
O problema esta no dia, o sql só esta considerando créditos até o dia "20", mas em alguns meses, houve créditos além do dia "20".
Se alguém puder ajudar,
Abraços,
Wagner
Link to comment
Share on other sites
6 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.