wagner sá Postado Janeiro 12, 2012 Denunciar Share Postado Janeiro 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Janeiro 12, 2012 Denunciar Share Postado Janeiro 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 wagner sá Postado Janeiro 13, 2012 Autor Denunciar Share Postado Janeiro 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Janeiro 13, 2012 Denunciar Share Postado Janeiro 13, 2012 Algumas estruturas realmente utilizam as datas desta forma. Já vi vários aplicativos novos assim, principalmente via web... Precisando estamos ai! :.) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 peneju Postado Janeiro 29, 2012 Denunciar Share Postado Janeiro 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Janeiro 30, 2012 Denunciar Share Postado Janeiro 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!! :.) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 peneju Postado Fevereiro 2, 2012 Denunciar Share Postado Fevereiro 2, 2012 A cronologia não tem como mesmo.[]'s Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
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 para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.