SQL Duvida URGENTE

4 respostas
O

Galera, Boa Tarde !!

Estou com um duvida no SQL aqui não sei se vocês conseguem me ajudar, mas segue…

Eu preciso contar separando os valores de uma coluna
ou seja, nesta coluna eu tenho cadastrado de 1 à 9 e tenho que separar eles por
grupos…

select count(valor)AS VALOR1e2
	from transacao 
		where valor in (1,2) and DataOcorrencia between '01/01/2010 00:00:00' and '31/12/2010 23:59:59'

Na Query acima eu separo um grupo.

Agora se eu quiser separar outro grupo tenho que fazer outra query…

select count(valor)AS VALOR3e4
	from transacao 
		where valor in (3,4) and DataOcorrencia between '01/01/2010 00:00:00' and '31/12/2010 23:59:59'

Se alguem souber como eu colocar estas duas queria separando elas em colunas diferentes…

Ou Seja…

VALOR1e2 | VALOR3e4

Obrigado…

4 Respostas

G

Amigo…com certeza existem formas melhores de fazer isso, mas se você não for ter problemas com performance no seu banco poderia fazer com o comando abaixo

select (select count(valor) from transacao where valor in (1,2) and DataOcorrencia between '01/01/2010 00:00:00' and '31/12/2010 23:59:59') AS VALOR1e2,
         (select count(valor) from transacao where valor in (3,4) and DataOcorrencia between '01/01/2010 00:00:00' and '31/12/2010 23:59:59') AS VALOR3e4

Espero ter ajudado

F

Se você quer contar somente os valores:

SELECT valor,COUNT(valor) AS total FROM transacao GROUP BY valor

Esse comando irá lhe trazer todos os valor agrupados mais ou menos assim:

valor total
1 100
2 58
3 42
4 10

A

e ai…

se for mysql, tenta isso aqui

select sum(if(valor = 1 || valor = 2, 1, 0)) as VALOR1e2, sum(if(valor = 3 || valor = 4, 1, 0)) as VALOR3e4 from transacao where year(DataOcorrencia = '2010') ;

responde ai se funcionou, blz?

O

Muito Obrigado, todas respostas excelentes…

ABS

Criado 11 de fevereiro de 2011
Ultima resposta 13 de fev. de 2011
Respostas 4
Participantes 4