[firebase-br] Ajuda em SQL

Alexandre camilo em apollosistemas.com.br
Sex Jun 12 14:13:43 -03 2015


Boa tarde Bzottis, não sei se entendi mas veja se é isto??


tabela CLIENTES
cod_cliente    data_valor_novo   valor_mensal valor_mensal_novo
1                    01/05/2015          50,00 100,00
1                    15/05/2015          70,00 25,00
2                    15/05/2015          50,00 100,00


RESULTADOS
                                  cod_cliente         count valor
dia < 01/05/2015                       1 2            120,00
                                        2 1             50,00
01/05/2015 <= dia < 15/05/2015
                                        1 2            170,00
                                        2 1             50,00
dia >= 15/05/2015
                                        1 2            125,00
                                        2 1            100,00


Se esta é a situação o sql que vc precisa é o seguinte.

SELECT COD_CLIENTE, COUNT(*), SUM(IIF(:DATADESEJADA < DATA_VALOR_NOVO, 
VALOR_MENSAL, VALOR_MENSAL_NOVO))
FROM CLIENTES C
GROUP BY COD_CLIENTE


Alexandre Camilo
+55 27 3233-4143

On 12/06/2015 10:16, bzottis em ig.com.br wrote:
>   
>
> Obrigado pela resposta Alexandre, mas não me expressei direito.
>
> tenho um Cliente que é o Master, e vários dependentes
>
> então eu tenho que respeitar a data de cada Dependente e não apenas do
> Master
>
> e ele esta pegando a data do Master
>
> estou tentando assim: mas da erro no group by
>
> select c.cod_cliente,
>   (select count(C2.cod_cliente)from clientes c2 where c2.cod_cliente =
> c.cod_cliente )as Quantia,
>   case
>   when (select c2.data_valor_novo from clientes c2 where c2.cod_cliente =
> c.cod_cliente) > current_date then
>   sum(c2.valor_mensal)
>   when (select c2.data_valor_novo from clientes c2 where c2.cod_cliente =
> c.cod_cliente) <= current_date then
>   sum(c2.valor_mensal_novo)
>   end as SomaValor_Mensal
>
> from CLIENTES c
> where c.cod_Cliente = :VARCod_Master
> group by c.cod_cliente
>
> Em 12/06/2015 08:27, Alexandre escreveu:
>
>> Se ODS >= A 11.0 pode utilizar o IIF, senao, pode utilizar o case.
>>
>> select count(C.cod_cliente)Quantia,
>>
>> sum(iif(CURRENT_DATE > DATA_VALOR_NOVO,VALOR_KILO_NOVO, VALOR_KILO)) SomaValor_Mensal
>>
>> from CLIENTES c
>>
>> where c.cod_master = :VARCod_Master
>>
>> Alexandre Camilo
>> +55 27 3233-4143
>>
>> On 11/06/2015 22:50, bzottis em ig.com.brwrote:
>>
>>> Pessoal, to com um situação que não to tenho idéia para resolver sem ser via while tenho na tabela de clientes, um campo "DATA_VALOR_NOVO" e tenho "Valor_Kilo" e "Valor_Kilo_Novo" tenho essa query: select count(C.cod_cliente)Quantia, sum(c.valor_mensal) SomaValor_Mensal from CLIENTES c where c.cod_master = :VARCod_Master mas preciso respeitar a data do Valor novo de cada Cliente. Para explicar melhor, se em um cliente a data para valor novo já venceu, tenho que pegar o Valor do kilo Novo, senão o velho. alguém poderia me dar uma luz? tentei usar o case, mas da erro. desde já agradeço. ______________________________________________ FireBase-BR (www.firebase.com.br [1]) - Hospedado em www.locador.com.br [2] Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107 [3] Para consultar mensagens antigas: http://firebase.com.br/pesquisa [4]
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br [1]) - Hospedado em www.locador.com.br [2]
>> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107 [3]
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa [4]
>   
>
> Links:
> ------
> [1] http://www.firebase.com.br
> [2] http://www.locador.com.br
> [3] http://www.firebase.com.br/fb/artigo.php?id=1107
> [4] http://firebase.com.br/pesquisa
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>






Mais detalhes sobre a lista de discussão lista