Agrupar Tabelas

03/04/2008

0

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

Responder

Posts

04/04/2008

Groove

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:


Responder

04/04/2008

Ricardo Silva

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


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar