[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