Fórum Select um pouco complicado (para eu) #537705
20/11/2015
0
Tenho as seguintes tabelas:
Tcompromisso
-----------------
id
data
id_responsavel
Tresponsavel
----------------
id
nome
Gostaria de realizar um select que retorne o seguinte:
nome_responsavel, total de compromissos atribuidos a ele, total de compromisso atribuídos a ela com a data de hoje
Parece que vou ter que usar dous counts... Não estou conseguindo
Agradeço muito a ajuda de vocês.
Ananias
Curtir tópico
+ 1Post mais votado
20/11/2015
select resp.Nome,
(select count(1) from t_compromisso where t_responsavelID = resp.t_responsavelID) as TotalCompromisso,
(select count(1) from t_compromisso where t_responsavelID = resp.t_responsavelID and datediff(dd,Data,getdate()) = 1) as TotalCompromisso
from T_responsavel
Marcos P
Gostei + 1
Mais Posts
20/11/2015
Jothaz
CREATE TABLE #TCOMPROMISSO (ID INT, DATA DATETIME, ID_RESPONSAVEL VARCHAR(20)) CREATE TABLE #TRESPONSAVEL (ID INT, NOME VARCHAR(20)) INSERT INTO #TCOMPROMISSO (ID, DATA, ID_RESPONSAVEL) VALUES (1, GETDATE(), 1) INSERT INTO #TCOMPROMISSO (ID, DATA, ID_RESPONSAVEL) VALUES (1, (GETDATE() - 5), 2) INSERT INTO #TCOMPROMISSO (ID, DATA, ID_RESPONSAVEL) VALUES (1, (GETDATE() - 10), 3) INSERT INTO #TCOMPROMISSO (ID, DATA, ID_RESPONSAVEL) VALUES (1, (GETDATE() - 10), 3) INSERT INTO #TCOMPROMISSO (ID, DATA, ID_RESPONSAVEL) VALUES (1, (GETDATE() - 10), 3) INSERT INTO #TCOMPROMISSO (ID, DATA, ID_RESPONSAVEL) VALUES (1, (GETDATE() - 2), 1) INSERT INTO #TCOMPROMISSO (ID, DATA, ID_RESPONSAVEL) VALUES (1, (GETDATE() + 8), 2) INSERT INTO #TCOMPROMISSO (ID, DATA, ID_RESPONSAVEL) VALUES (1, (GETDATE() + 3), 2) INSERT INTO #TCOMPROMISSO (ID, DATA, ID_RESPONSAVEL) VALUES (1, (GETDATE() + 3), 2) INSERT INTO #TRESPONSAVEL (ID, NOME) VALUES (1, 'DIANA') INSERT INTO #TRESPONSAVEL (ID, NOME) VALUES (2, 'ATENAS') INSERT INTO #TRESPONSAVEL (ID, NOME) VALUES (3, 'VÊNUS') SELECT R.NOME,COUNT(C.ID_RESPONSAVEL) FROM #TCOMPROMISSO C INNER JOIN #TRESPONSAVEL R ON R.ID = C.ID_RESPONSAVEL GROUP BY R.NOME ORDER BY R.NOME SELECT R.NOME,CONVERT(VARCHAR, DATA, 103),COUNT(C.ID_RESPONSAVEL) FROM #TCOMPROMISSO C INNER JOIN #TRESPONSAVEL R ON R.ID = C.ID_RESPONSAVEL GROUP BY R.NOME,CONVERT(VARCHAR, DATA, 103) ORDER BY R.NOME,CONVERT(VARCHAR, DATA, 103) DROP TABLE #TCOMPROMISSO DROP TABLE #TRESPONSAVEL
Gostei + 0
20/11/2015
Ananias
[img]http://arquivo.devmedia.com.br/forum/imagem/401183-20151120-153351.png[/img]
Simplificando, dado o conteúdo das tabelas
Selecione os nomes de cada responsável, seguido da quantidade total de compromissos de cada um e da quantidade total de compromissos de cada um, cuja data do compromisso seja igual ao dia atual.
nome : fulano de tal
total_compromisso : 1200
total_compromissos_hoje : 30
etc...
Grato.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)