[firebase-br] Histograma, Select Count retorna 1 quando não existe
Eduardo Bahiense
eduardo em icontroller.com.br
Ter Mar 4 23:18:36 -03 2008
Olá Paulo
Você não tem aparecido muito por aqui. Deve ser que nem eu, mais escuto
que falo.
No caso da sua query, fico confuso com o não existir. Isso resultaria
NULL, então ficaria assim IIF(NULL, ID_CLIENTE, 0). Como NULL não é true
nem false o que ele retornaria?
Bem, já é quase meia noite e minha cabeça já não quer responder mais.
Parece que você quer um Histograma com volume médio de compras por
cliente. Assim eu teria primeiro que ter o quanto cada cliente compra:
QRY 1 =
CLI - QTD | SELECT
001 45 | CLIENTE AS CLI,
002 57 | COUNT(OPERAÇÕES)AS QTD
003 98 | ...
004 220 | GROUP BY 1
... ...
Daí, com SELECT FROM SELECT eu poderia fazer:
SELECT
CASE
WHEN QTD BETWEEN 000 AND 100 THEN 1
WHEN QTD BETWEEN 101 AND 200 THEN 2
WHEN QTD BETWEEN 101 AND 200 THEN 3
WHEN QTD BETWEEN 201 AND 300 THEN 4
ELSE
5
END AS FAIXA,
COUNT(CLI) AS VALOR
FROM
( *** QRY 1 ACIMA *** )
GROUP BY 1
Que resultaria:
FAIXA - VALOR
1 3
4 1
Será que dá? Ou viajei bonito?
Abs
Eduardo
Paulo Geloramo escreveu:
> SELECT
> COUNT(DISTINCT(IIF(TOTAL_VENDA BETWEEN 100 AND 200, ID_CLIENTE, 0)))
> AS "Quantidade Venda entre 100-200"
> FROM VENDA
>
> O select acima vai verificar se existe alguma venda com TOTAL_VENDA
> entre 100 e 200, se não existe deveria retornar zero, mas esta retornando 1.
>
> Se existe alguma venda, retorna correto.
>
> A idéia é fazer um histograma com diversas faixas, neste exemplo
> tem somente a faixa entre 100 e 200.
>
> Alguma sugestão para montar este SQL de outra forma?
>
> []s
> Paulo Geloramo
>
> ______________________________________________
> 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