Usuário com melhor resposta
Como fazer um select com 3 colunas

Pergunta
-
Boa tarde,
Possuo uma tabela SOLICITACAO, que tem as seguintes colunas:
PRIORIDADE | STATUS | DT_ABERTURA | DURACAOTenho 3 selects, cada um me traz:
1: Quantidade de solicitações onde PRIORIDADE = 'baixa', STATUS = 'fechado', DT_ABERTURA ENTRE 01/07/2012 e 31/07/2012, DURACAO = 1
2: Quantidade de solicitações onde PRIORIDADE = 'baixa', STATUS = 'fechado', DT_ABERTURA ENTRE 01/07/2012 e 31/07/2012, DURACAO = 2
1: Quantidade de solicitações onde PRIORIDADE = 'baixa', STATUS = 'fechado', DT_ABERTURA ENTRE 01/07/2012 e 31/07/2012, DURACAO > 2
O SELECT ESTÁ PRONTO:
SELECT COUNT(PRIORIDADE) AS [1DIA] FROM SOLICITACAO WHERE PRIORIDADE = 'Baixa' AND STATUS = 'Fechado' AND DT_ABERTURA BETWEEN '2012-07-01' AND '2012-07-31' AND DURACAO <= 1 SELECT COUNT(PRIORIDADE) AS [2DIAS] FROM SOLICITACAO WHERE PRIORIDADE = 'Baixa' AND STATUS = 'Fechado' AND DT_ABERTURA BETWEEN '2012-07-01' AND '2012-07-31' AND DURACAO > 1 AND DURACAO <= 10 SELECT COUNT(PRIORIDADE) AS [+ DE 2 DIAS] FROM SOLICITACAO WHERE PRIORIDADE = 'Baixa' AND STATUS = 'Fechado' AND DT_ABERTURA BETWEEN '2012-07-01' AND '2012-07-31' AND DURACAO > 10
Porém, eu gostaria de fazer um select só, que trouxesse todas essas informações, assim:
_____________________________
| 1DIA | 2DIAS | + DE 2 DIAS |
| 3 | 4 | 2 |ABRAÇO
Respostas
-
coloque um TOP 1
SELECT TOP 1 (SELECT COUNT(PRIORIDADE) AS [1DIA] FROM SOLICITACAO WHERE PRIORIDADE = 'Baixa' AND STATUS = 'Fechado' AND DT_ABERTURA BETWEEN '2012-07-01' AND '2012-07-31' AND DURACAO <= 1) As 1 DIA, ( SELECT COUNT(PRIORIDADE) AS [2DIAS] FROM SOLICITACAO WHERE PRIORIDADE = 'Baixa' AND STATUS = 'Fechado' AND DT_ABERTURA BETWEEN '2012-07-01' AND '2012-07-31' AND DURACAO > 1 AND DURACAO <= 10) AS 2DIA, ( SELECT COUNT(PRIORIDADE) AS [+ DE 2 DIAS] FROM SOLICITACAO WHERE PRIORIDADE = 'Baixa' AND STATUS = 'Fechado' AND DT_ABERTURA BETWEEN '2012-07-01' AND '2012-07-31' AND DURACAO > 10) AS MAISDE2DIAS FROM SOLICITACAO
Se a sugestão resolver o problema, favor marcar como Resposta.
- Marcado como Resposta Leonardo D'Amato quinta-feira, 26 de julho de 2012 20:48
Todas as Respostas
-
SELECT (SELECT COUNT(PRIORIDADE) AS [1DIA] FROM SOLICITACAO WHERE PRIORIDADE = 'Baixa' AND STATUS = 'Fechado' AND DT_ABERTURA BETWEEN '2012-07-01' AND '2012-07-31' AND DURACAO <= 1) As 1 DIA, ( SELECT COUNT(PRIORIDADE) AS [2DIAS] FROM SOLICITACAO WHERE PRIORIDADE = 'Baixa' AND STATUS = 'Fechado' AND DT_ABERTURA BETWEEN '2012-07-01' AND '2012-07-31' AND DURACAO > 1 AND DURACAO <= 10) AS 2DIA, ( SELECT COUNT(PRIORIDADE) AS [+ DE 2 DIAS] FROM SOLICITACAO WHERE PRIORIDADE = 'Baixa' AND STATUS = 'Fechado' AND DT_ABERTURA BETWEEN '2012-07-01' AND '2012-07-31' AND DURACAO > 10) AS MAISDE2DIAS FROM SOLICITACAO
Se a sugestão resolver o problema, favor marcar como Resposta.
- Editado Lucas_Santos quinta-feira, 26 de julho de 2012 19:39
-
Lucas,
Trouxe o resultado certinho, porém, ele trouxe muitas linhas com o mesmo resultado.
Porque assim: Tenho uma solicitação de prioridade baixa no 1DIA, 0 solicitações de prioridade baixa no 2DIAS e 2 solicitações de prioridade baixa no MAIS DE 2 DIAS.
O que ele precisa me trazer é:
_______________________
1DIA | 2DIAS | MAISDE2DIAS|
1 | 0 | 2 |porém, ele está trazendo assim:
_______________________
1DIA | 2DIAS | MAISDE2DIAS|
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
1 | 0 | 2 |
Abraço e obrigado
-
coloque um TOP 1
SELECT TOP 1 (SELECT COUNT(PRIORIDADE) AS [1DIA] FROM SOLICITACAO WHERE PRIORIDADE = 'Baixa' AND STATUS = 'Fechado' AND DT_ABERTURA BETWEEN '2012-07-01' AND '2012-07-31' AND DURACAO <= 1) As 1 DIA, ( SELECT COUNT(PRIORIDADE) AS [2DIAS] FROM SOLICITACAO WHERE PRIORIDADE = 'Baixa' AND STATUS = 'Fechado' AND DT_ABERTURA BETWEEN '2012-07-01' AND '2012-07-31' AND DURACAO > 1 AND DURACAO <= 10) AS 2DIA, ( SELECT COUNT(PRIORIDADE) AS [+ DE 2 DIAS] FROM SOLICITACAO WHERE PRIORIDADE = 'Baixa' AND STATUS = 'Fechado' AND DT_ABERTURA BETWEEN '2012-07-01' AND '2012-07-31' AND DURACAO > 10) AS MAISDE2DIAS FROM SOLICITACAO
Se a sugestão resolver o problema, favor marcar como Resposta.
- Marcado como Resposta Leonardo D'Amato quinta-feira, 26 de julho de 2012 20:48