Agrupar Tabelas

.NET

03/04/2008

Fala galera.... desculpem postar no lugar errado ... mas temos um grande problema relativo ao fluxo de usuários no fórum de SQL SERVER.. quando coloco algo lá... quase sempre não é respondido.. <_< ( e quando é.... demooooooora ).... acho que por falta de usuários naquela parte do forum...
por isso... solicito uma pequena mas urgente ajuda.... seguinte...

tenho uma query:


SELECT CATEGORIA, SUBCATEGORIA, CONTEUDO
FROM(SELECT  
(SELECT COUNT(*) AS QUANTIDADE FROM CONTEUDO_CATEGORIA WHERE  
FL_ID_CATEGORIA = 0 AND  
(FL_PENDENTE = 1 OR FL_EXCLUIR = 1 OR FL_NOVO = 1)) AS CATEGORIA, 

(SELECT COUNT(*) AS QUANTIDADE FROM CONTEUDO_SUBCATEGORIA WHERE  
FL_ID_SUBCATEGORIA = 0 AND  
(FL_PENDENTE = 1 OR FL_EXCLUIR = 1 OR FL_NOVO = 1)) AS SUBCATEGORIA, 

(SELECT COUNT(*) AS QUANTIDADE FROM CONTEUDO WHERE  
FL_ID_CONTEUDO = 0 AND  
(FL_PENDENTE = 1 OR FL_EXCLUIR = 1 OR FL_NOVO = 1)) AS CONTEUDO 
) AS TABELA 



que me retorna uma tabela assim:

|CATEGORIA|SUBCATEGORIA|CONTEUDO|
1|____3_____|______5______|____2_____|

O problema é que preciso que retorne uma tabela assim:


|ITEM |QUANTIDADE|
1|CATEGORIA ___|_____3_____|
2|SUBCATEGORIA|_____5_____|
2|CONTEUDO____|_____2_____|


Então modifiquei o código dessa forma....

SELECT ´CATEGORIA´ as ITEM, QUANTIDADE
FROM(SELECT 
(SELECT COUNT(*) AS QUANTIDADE FROM CONTEUDO_CATEGORIA WHERE 
FL_ID_CATEGORIA = 0 AND 
(FL_PENDENTE = 1 OR FL_EXCLUIR = 1 OR FL_NOVO = 1)) AS QUANTIDADE
) AS CATEGORIA

SELECT ´SUBCATEGORIA´ as ITEM, * 
FROM(SELECT 
(SELECT COUNT(*) AS QUANTIDADE FROM CONTEUDO_SUBCATEGORIA WHERE 
FL_ID_SUBCATEGORIA = 0 AND 
(FL_PENDENTE = 1 OR FL_EXCLUIR = 1 OR FL_NOVO = 1)) AS QUANTIDADE
) AS SUBCATEGORIA


SELECT ´CONTEUDO´ as ITEM, * 
FROM(SELECT 
(SELECT COUNT(*) AS QUANTIDADE FROM CONTEUDO WHERE 
FL_ID_CONTEUDO = 0 AND 
(FL_PENDENTE = 1 OR FL_EXCLUIR = 1 OR FL_NOVO = 1)) AS QUANTIDADE
) AS CONTEUDO


que me retorna 3 tabelas:

TABELA1:

|ITEM |QUANTIDADE|
1|CATEGORIA ___|_____3_____|


TABELA2:

|ITEM |QUANTIDADE|
1|SUBCATEGORIA|_____5_____|


TABELA3:

|ITEM |QUANTIDADE|
1|CONTEUDO____|_____2_____|



Como unir essas três tabelas para que fiquem assim:
|ITEM |QUANTIDADE|
1|CATEGORIA ___|_____3_____|
2|SUBCATEGORIA|_____5_____|
2|CONTEUDO____|_____2_____|


abraços.
Thiago


Thiagos25

Thiagos25

Curtidas 0

Respostas

Groove

Groove

03/04/2008

olá,
me esforcei pois naum sei nada de BD entaum chamei um amig o Bruno e ele me ajudou com seu caso,

fiz um teste com a tabela q tenho aqui mas acho q vc vai entender sem prob

SELECT ´teste´, COUNT(*) AS teste FROM status_aplicacoes WHERE  
IDAPLICACAO = 1
union
SELECT ´novoteste´ , COUNT(*) AS novoteste FROM status_aplicacoes WHERE  
IDSTATUS = 0
union
SELECT ´outroteste´, COUNT(*) AS outroteste FROM status_aplicacoes WHERE  
OBS = ´´


bem simples pois naum sei muito de BD mas funcionou e ficou como vc queira.

:idea: **--Não esqueça de responder kaso tenha dado certo ou não!!!--** :idea:


GOSTEI 0
Ricardo Silva

Ricardo Silva

03/04/2008

Cara, te resolvo isso com Uma Palavra ´UNION´ (rsrsrsr)

serio
SELECT ´CATEGORIA´ as ITEM, QUANTIDADE FROM(SELECT (SELECT COUNT(*) AS QUANTIDADE FROM CONTEUDO_CATEGORIA WHERE FL_ID_CATEGORIA = 0 AND (FL_PENDENTE = 1 OR FL_EXCLUIR = 1 OR FL_NOVO = 1)) AS QUANTIDADE ) AS CATEGORIA UNION SELECT ´SUBCATEGORIA´ as ITEM, * FROM(SELECT (SELECT COUNT(*) AS QUANTIDADE FROM CONTEUDO_SUBCATEGORIA WHERE FL_ID_SUBCATEGORIA = 0 AND (FL_PENDENTE = 1 OR FL_EXCLUIR = 1 OR FL_NOVO = 1)) AS QUANTIDADE ) AS SUBCATEGORIA UNION SELECT ´CONTEUDO´ as ITEM, * FROM(SELECT (SELECT COUNT(*) AS QUANTIDADE FROM CONTEUDO WHERE FL_ID_CONTEUDO = 0 AND (FL_PENDENTE = 1 OR FL_EXCLUIR = 1 OR FL_NOVO = 1)) AS QUANTIDADE ) AS CONTEUDO


soh acrescentar UNION entre os Select e eles se uniram..
Detalhe elest tem que ter o mesmo numero de Colunas e mesmo nome de coluna


GOSTEI 0
POSTAR