 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
leogazio Colaborador


Registrado: Domingo, 18 de Fevereiro de 2007 Mensagens: 1047 Localização: Alto Paraná - PR
|
Enviada: Sex Nov 25, 2011 1:53 am Assunto: Relatório agrupando pela data. |
|
|
Fala Rapaziada! SegUinte; Tenho uma tabelinha pra movimentação de caixa que tem a seguinte estrutura;
CODMOVIMENTOCAIXA (chave da tabela)
DESCRICAO (descrição da movimentação)
ENTRADASAIDA (0 = entrada, 1 = retirada)
DATAHORA (data e hora da movimentação)
STATUS (A = aberto, F = fechado)
USUARIO (usuário quem realizou a movimentação)
PONTODEVENDA (descrição do ponto de venda)
VALOR (valor da movimentação)
PDVTERMINAL (Auxiliar para o join; 0 = Indica que é PDV, 1 = Indica que é terminal)
CODPONTODEVENDA (chave do ponto de venda)
E tenho a seguinte query;
Código: | SELECT CODPONTODEVENDA, PONTODEVENDA, TIPOMOVIMENTACAO, DATAHORA, USUARIO, DESCRICAO, VALOR FROM
(
SELECT A.CODPONTODEVENDA, A.PONTODEVENDA, A.ENTRADASAIDA AS TIPOMOVIMENTACAO, A.DATAHORA, A.USUARIO, A.DESCRICAO, A.VALOR
FROM TBMOVIMENTOCAIXA A
INNER JOIN TBTERMINAISPEDIDOSVENDA B ON ((A.CODPONTODEVENDA = B.CODTERMINALPEDIDOSVENDA) AND (A.PDVTERMINAL = 1)
AND (A.STATUS = 'A'))
UNION
SELECT A.CODPONTODEVENDA, A.PONTODEVENDA, A.ENTRADASAIDA AS TIPOMOVIMENTACAO, A.DATAHORA, A.USUARIO, A.DESCRICAO, A.VALOR
FROM TBMOVIMENTOCAIXA A
INNER JOIN TBPONTOSDEVENDA B ON ((A.CODPONTODEVENDA = B.CODPONTODEVENDA) AND (A.PDVTERMINAL = 0)
AND (A.STATUS = 'A'))
) ORDER BY PONTODEVENDA, DATAHORA |
que me auxilia a popular o seguinte relatório, só baixar e abrir no WordPad;
http://leonardogazio.atspace.com/relatorio.rtf
Ali nesse relatório eu tenho o grupo que lista todos os caixas abertos e a movimentação de cada um, mas o que eu preciso é adicionar mais um grupo nesse relatório tipo assim;
Data
Caixa
Movimentação
Ou seja, mostrar os caixas agrupados pela data. Alguém poderia me ajudar a reformular esse SQL? Qualquer idéia é bemvinda, []'s. _________________ Leonardo Gazio - Consultoria e Suporte a Desenvolvedores.
Suporte para todo o Brasil via;
E-mail: leonardogazio@delphimasters.com
Msn: lngsmattos@hotmail.com
Claro: (21) 7301-7243 |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Nov 25, 2011 9:11 am Assunto: |
|
|
Se entendi corretamente, acho que só é necessário alterar o Order by para ordenar por Data (sem as horas), depois por PONTODEVENDA e DATAHORA (ou só a hora).
Não sei qual banco você está utilizando, mas em Firebird ficaria mais ou menos como segue:
Código: | ) ORDER BY CAST(DATAHORA AS DATE), PONTODEVENDA, DATAHORA |
Espero que seja útil.
Editado pela última vez por imex em Ter Out 17, 2023 11:50 am, num total de 1 vez |
|
Voltar ao Topo |
|
 |
leogazio Colaborador


Registrado: Domingo, 18 de Fevereiro de 2007 Mensagens: 1047 Localização: Alto Paraná - PR
|
Enviada: Sex Nov 25, 2011 1:52 pm Assunto: |
|
|
Olá amigão, tô usando o Oracle, então, é quase isso. Cara deixa eu tirar um dúvida, a cliente quer vero movimento de caixa pela data, é mesmo necessário isso? Não pode ser um relatório de faturamento filtrado por data agrupando pala forma de pagamento?
[]'s. _________________ Leonardo Gazio - Consultoria e Suporte a Desenvolvedores.
Suporte para todo o Brasil via;
E-mail: leonardogazio@delphimasters.com
Msn: lngsmattos@hotmail.com
Claro: (21) 7301-7243 |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Nov 25, 2011 2:32 pm Assunto: |
|
|
Com o Order by original você tem:
Código: | PDV-0002 | 24/11/2011 | 10
PDV-0002 | 24/11/2011 | 5-
PDV-0002 | 25/11/2011 | 20
PDV-0002 | 25/11/2011 | 8-
TERMINAL-0001 | 24/11/2011 | 18
TERMINAL-0001 | 24/11/2011 | 15-
TERMINAL-0001 | 25/11/2011 | 25
TERMINAL-0001 | 25/11/2011 | 18- |
Com o Order by modificado:
Código: | PDV-0002 | 24/11/2011 | 10
PDV-0002 | 24/11/2011 | 5-
TERMINAL-0001 | 24/11/2011 | 18
TERMINAL-0001 | 24/11/2011 | 15-
PDV-0002 | 25/11/2011 | 20
PDV-0002 | 25/11/2011 | 8-
TERMINAL-0001 | 25/11/2011 | 25
TERMINAL-0001 | 25/11/2011 | 18- |
Se estou entendendo corretamente, acho que é necessário alterar o Order by, ou se você trabalhar com CDS pode alterar a ordem com as propriedades IndexFieldNames ou IndexName. |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|