Select um pouco complicado (para eu)
20/11/2015
0
Não consegui achar aqui no forum uma resposta para a minha dúvida !
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.
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
+ 1
Responder
Post mais votado
20/11/2015
Tente algo parecido com isso...
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
Responder
Mais Posts
20/11/2015
Jothaz
Sinceramente achei o post muito confuso. Veja se o exemplo abaixo ajuda a lhe dar uma luz.
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
Responder
20/11/2015
Ananias
Amigo, desculpe se foi confuso. Vou tentar explicar melhor ...
[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.
[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.
Responder
Clique aqui para fazer login e interagir na Comunidade :)