[firebase-br] where condiçoes distintas
Wilson Rosa
wsrosa em gmail.com
Sex Out 28 10:00:47 -03 2011
Olá Fabiano,
Pra resolver o problema que o Nivaldo e o André Conrado detectaram,
basta inverter a condição do WHERE:
WHERE
(CCUSTO STARTING WITH :c_ccusto)
or
(CCUSTO STARTING WITH :b_ccusto)
or
(CCUSTO STARTING WITH :a_ccusto)
Porém, como você disse que quer somar os valores distintos em cada uma das 3
opções:
Uma das alternativas seria você fazer 3 Selects, um para cada condição (a,
b, c) e juntá-los com UNION, agrupando pela condição, assim você terá 3
registros, um pra cada condição, com o respectivo total:
SELECT a_ccusto, SUM (CREDITO) AS Total
WHERE (CCUSTO STARTING WITH a_ccusto)
GROUP BY a_ccusto
UNION
SELECT b_ccusto, SUM (CREDITO) AS Total
WHERE (CCUSTO STARTING WITH b_ccusto)
GROUP BY b_ccusto
UNION
SELECT c_ccusto, SUM (CREDITO) AS Total
WHERE (CCUSTO STARTING WITH c_ccusto)
GROUP BY c_ccusto
Exemplo:
CCUSTO TOTAL
01 198.00
01.00 10.00
01.00.00 10.00
01.01 183.00
01.01.00 120.00
01.01.01 25.00
01.01.02 20.00
01.01.03 18.00
01.02 5.00
01.02.01 3.00
01.02.02 2.00
*Wilson Rosa*
Desenvolvedor Desk
wsrosa em gmail.com
*
*
Em 25 de outubro de 2011 10:57, Fabiano Lima <frguitar em bol.com.br> escreveu:
> Pessoal na minha SP tenho um select substring que separa meu codigo em 3
> variaveis
>
> a_ccusto
> b_ccusto
> c_ccusto
>
>
> SELECT SUBSTRING (CCUSTO FROM 01 FOR 02) ,
> SUBSTRING (CCUSTO FROM 01 FOR 05) ,
> SUBSTRING (CCUSTO FROM 01 FOR 08)
> FROM CADCCUSTO
> WHERE CCUSTO = :rccusto
>
>
> INTO :a_ccusto, :b_ccusto, :c_ccusto
>
>
> depois eu faço um
>
> SELECT SUM (CREDITO)
> FROM LANC
> WHERE (CCUSTO STARTING WITH :a_ccusto)
> or
> (CCUSTO STARTING WITH :b_ccusto)
> or
> (CCUSTO STARTING WITH :c_ccusto)
>
>
> Só que ele só me retorna os valores somados nos campos onde CCUSTO STARTING
> WITH :a_ccusto, ignorando os outros 2
>
> Gostaria que ele somasse os valores distinos em cada uma das 3 opções
>
> ______________________________________________
> 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