Retorar Consulta Sql Server
31/03/2014
0
[img:descricao=resultado estilo agenda]http://arquivo.devmedia.com.br/forum/imagem/290142-20140331-143009.png[/img]
sendo que no banco tenho as seguintes tabelas:
[img:descricao=diagrama]http://arquivo.devmedia.com.br/forum/imagem/290142-20140331-143815.png[/img]
Gamal Ismail
Posts
31/03/2014
Jefferson Santos
SELECT H.IDHOR, P.DESPROF, S.NOMCLI TB_AGENDA A JOIN TB_HOR_AGE H ON H.IDFOR = A.IDHOR JOIN TB_PROFISSIO P ON P.IDPROF = A.IDPROF JOIN TB_SALAO S ON S.IDAGE = A.IDAGE
31/03/2014
Gamal Ismail
Não consegui aplicar seu exemplo na minha consulta com base nas tabelas.
Talvez possa me ajudar a reparar a consulta que fiz, qual chegou mto próximo do resultado. usando UNION.
Fiz uma consulta de UNION assim:
SELECT TB_AGENDA_1.DIVISAO AS Horario, dbo.TB_PARCEIROS.NOMCLI AS Leandro, CAST(NULL AS VARCHAR(MAX)) AS RODRIGO, CAST(NULL AS VARCHAR(MAX)) AS VIVIANE, CAST(NULL AS VARCHAR(MAX)) AS TATIANE, CAST(NULL AS VARCHAR(MAX)) AS TAINA FROM dbo.TB_AGENDA AS TB_AGENDA_1 INNER JOIN dbo.TB_SALAO ON TB_AGENDA_1.IDAGE = dbo.TB_SALAO.IDAGE INNER JOIN dbo.TB_PARCEIROS ON dbo.TB_SALAO.IDCLI = dbo.TB_PARCEIROS.IDCLI GROUP BY TB_AGENDA_1.DIVISAO, TB_AGENDA_1.IDPROF, dbo.TB_PARCEIROS.NOMCLI HAVING (TB_AGENDA_1.IDPROF = 1) UNION SELECT TB_AGENDA_1.DIVISAO AS Horario, Null AS Leandro, dbo.TB_PARCEIROS.NOMCLI AS RODRIGO, CAST(NULL AS VARCHAR(MAX)) AS VIVIANE,CAST(NULL AS VARCHAR(MAX)) AS TATIANE, CAST(NULL AS VARCHAR(MAX)) AS TAINA FROM dbo.TB_AGENDA AS TB_AGENDA_1 INNER JOIN dbo.TB_SALAO ON TB_AGENDA_1.IDAGE = dbo.TB_SALAO.IDAGE INNER JOIN dbo.TB_PARCEIROS ON dbo.TB_SALAO.IDCLI = dbo.TB_PARCEIROS.IDCLI GROUP BY TB_AGENDA_1.DIVISAO, TB_AGENDA_1.IDPROF, dbo.TB_PARCEIROS.NOMCLI HAVING (TB_AGENDA_1.IDPROF = 4) UNION SELECT TB_AGENDA_1.DIVISAO AS Horario, CAST(NULL AS VARCHAR(MAX)) AS Leandro, CAST(NULL AS VARCHAR(MAX)) AS RODRIGO, dbo.TB_PARCEIROS.NOMCLI AS VIVIANE, CAST(NULL AS VARCHAR(MAX)) AS TATIANE, CAST(NULL AS VARCHAR(MAX)) AS TAINA FROM dbo.TB_AGENDA AS TB_AGENDA_1 INNER JOIN dbo.TB_SALAO ON TB_AGENDA_1.IDAGE = dbo.TB_SALAO.IDAGE INNER JOIN dbo.TB_PARCEIROS ON dbo.TB_SALAO.IDCLI = dbo.TB_PARCEIROS.IDCLI GROUP BY TB_AGENDA_1.DIVISAO, TB_AGENDA_1.IDPROF, dbo.TB_PARCEIROS.NOMCLI HAVING (TB_AGENDA_1.IDPROF = 2) UNION SELECT TB_AGENDA_1.DIVISAO AS Horario, CAST(NULL AS VARCHAR(MAX)) AS Leandro, CAST(NULL AS VARCHAR(MAX)) AS RODRIGO, CAST(NULL AS VARCHAR(MAX)) AS VIVIANE, dbo.TB_PARCEIROS.NOMCLI AS TATIANE, CAST(NULL AS VARCHAR(MAX)) AS TAINA FROM dbo.TB_AGENDA AS TB_AGENDA_1 INNER JOIN dbo.TB_SALAO ON TB_AGENDA_1.IDAGE = dbo.TB_SALAO.IDAGE INNER JOIN dbo.TB_PARCEIROS ON dbo.TB_SALAO.IDCLI = dbo.TB_PARCEIROS.IDCLI GROUP BY TB_AGENDA_1.DIVISAO, TB_AGENDA_1.IDPROF, dbo.TB_PARCEIROS.NOMCLI HAVING (TB_AGENDA_1.IDPROF = 3) UNION SELECT TB_AGENDA_1.DIVISAO AS Horario, CAST(NULL AS VARCHAR(MAX)) AS Leandro, CAST(NULL AS VARCHAR(MAX)) AS RODRIGO, CAST(NULL AS VARCHAR(MAX)) AS VIVIANE, CAST(NULL AS VARCHAR(MAX)) AS TATIANE, dbo.TB_PARCEIROS.NOMCLI AS TAINA FROM dbo.TB_AGENDA AS TB_AGENDA_1 INNER JOIN dbo.TB_SALAO ON TB_AGENDA_1.IDAGE = dbo.TB_SALAO.IDAGE INNER JOIN dbo.TB_PARCEIROS ON dbo.TB_SALAO.IDCLI = dbo.TB_PARCEIROS.IDCLI GROUP BY TB_AGENDA_1.DIVISAO, TB_AGENDA_1.IDPROF, dbo.TB_PARCEIROS.NOMCLI HAVING (TB_AGENDA_1.IDPROF = 5)
Depois pra tentar reparar o agrupamento
fiz uma outra consulta usando a UNION acima, como segue:
SELECT Horario, Leandro, RODRIGO, VIVIANE, TATIANE, TAINA FROM dbo.SP_UNION_AGENDA GROUP BY Horario, Leandro, RODRIGO, VIVIANE, TATIANE, TAINA
O resultado fica mto próximo ao que preciso:
[img:descricao=Consulta a Union]http://arquivo.devmedia.com.br/forum/imagem/290142-20140331-170303.png[/img]
Mas como pode observar, preciso agrupar os Nomes e os Campos NULL pra fechar a agenda e o horario.
31/03/2014
Jefferson Santos
31/03/2014
Gamal Ismail
Consegui finalizar a consulta e obter o resultado usando [MAX]
SELECT Horario, MAX(Leandro) AS Leandro, MAX(RODRIGO) AS RODRIGO, MAX(VIVIANE) AS VIVIANE, MAX(TATIANE) AS TATIANE, MAX(TAINA) AS TAINA
FROM dbo.SP_UNION_AGENDA
GROUP BY Horario
[img:descricao=union + max]http://arquivo.devmedia.com.br/forum/imagem/290142-20140331-182256.png[/img]
31/03/2014
Jefferson Santos
Consegui finalizar a consulta e obter o resultado usando [MAX]
SELECT Horario, MAX(Leandro) AS Leandro, MAX(RODRIGO) AS RODRIGO, MAX(VIVIANE) AS VIVIANE, MAX(TATIANE) AS TATIANE, MAX(TAINA) AS TAINA
FROM dbo.SP_UNION_AGENDA
GROUP BY Horario
[img:descricao=union + max]http://arquivo.devmedia.com.br/forum/imagem/290142-20140331-182256.png[/img]
Nada..
Clique aqui para fazer login e interagir na Comunidade :)