[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