Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

berkowitz

[Resolvido] Subquery, Case...

Recommended Posts

Pessoal, olá.

 

Tenho uma consulta que retorna os seguintes dados:

 

GarUni	 Situacao
---------- ---------------
Unidade 1  
Unidade 1  
...
Unidade 1  G
Unidade 1  G
...
Unidade 1  saiu da Garagem
Unidade 1  saiu da Garagem
...
Unidade 1  saiu do TP
Unidade 1  saiu do TP
...
Unidade 1  saiu do TS
Unidade 1  saiu do TS
...
Unidade 1  TP
Unidade 1  TP
...
Unidade 1  TS
Unidade 1  TS
...
Unidade 2  
Unidade 2  
...
Unidade 2  G
Unidade 2  G
...
Unidade 2  saiu da Garagem
Unidade 2  saiu da Garagem
...
Unidade 2  saiu do TP
Unidade 2  saiu do TP
...
Unidade 2  saiu do TS
Unidade 2  saiu do TS
...
Unidade 2  TP
Unidade 2  TP
...
Unidade 2  TS
Unidade 2  TS
...

(1281 row(s) affected)

Agora preciso montar um relatório assim:

Imagem Postada

 

Existe uma forma de criar uma query dinâmica que faça os cálculos e armazene em colunas "de mentirinha"?

Que retorne algo assim:

 

GarUni Na garagem No TP No TS Outros

----------- --------------- --------- --------- ----------

Unidade 1 50 120 120 10

Unidade 2 80 100 150 40

 

Valew, e desculpe o post gigante! rs...

 

Abrax!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo que eu entendi você esta querendo pivotar seu dados:

 

segue a baixo links bastante instrutivos, qualquer duvida poste novamente:

 

parte 1: http://www.devmedia.com.br/articles/viewco...t.asp?comp=9724

parte 2: http://www.devmedia.com.br/articles/viewco...t.asp?comp=9725

 

ambos por Mauro Pichiliani.

ate a proxima

Compartilhar este post


Link para o post
Compartilhar em outros sites

Maravilha cara! Bons demais esses links aí. Dei uma lida por cima e é isso mesmo!

Vou analisar aqui com mais calma, resolver meu problema e aí apresento pra vocês.

 

Valew pela força!

 

Abrax!

Compartilhar este post


Link para o post
Compartilhar em outros sites

grato pelo feedback...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí cara... consegui resolver! De acordo com o que entendi da matéria o correto é agrupar, e ainda dá pra usar CASE! Maravilha! ehehe..

Resolvi assim:

 

SELECT
	GarUni,
	Count(situacao) AS TOTAL,
	Count(( CASE Situacao WHEN '' THEN Situacao END )) AS 'COM PROBLEMAS',
	Count(( CASE Situacao WHEN 'G' THEN Situacao END )) AS 'NA GARAGEM',
	Count(( CASE Situacao WHEN 'saiu da Garagem' THEN Situacao END )) AS 'EM POSICIONAMENTO',
	Count(( CASE Situacao WHEN 'TP' THEN Situacao END )) AS 'NO TP',
	Count(( CASE Situacao WHEN 'saiu do TP' THEN Situacao END )) AS 'SAIU DO TP',
	Count(( CASE Situacao WHEN 'TS' THEN Situacao END )) AS 'NO TS',
	Count(( CASE Situacao WHEN 'saiu do TS' THEN Situacao END )) AS 'SAIU DO TS'
FROM
	vAVL
WHERE
	cd_area = 1 AND
	cd_empresa = 38 AND
	GarUni Is Not Null
GROUP BY
	GarUni
ORDER BY
	GarUni ASC

Valew a força cara!

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.