Usuário com melhor resposta
Problemas com Union

Pergunta
-
Boa tarde
Sou meio novo com SQL Server e estou precisando e uma ajudaTenho um join que retorna valores semelhantes, porém por meio de uma clausula where que juntar os resultados de duas colulas da tabela hi com duas colunas da tabela hr na mesma linha (elas são de linhas diferentes e tem dados diferentes), para isso na primeira condição o resultset teria de ser null na tabela hi e o segundo resultset teria de ser null na tabela hr
Teria alguma forma de fazer isso ? Ou teria outra forma de eu juntar essa linhas ?
SELECT agt.age_id,loc.loc_id,agt.age_integrationid,agt.age_name,loc.loc_integrationid,loc.loc_description,loc.loc_neighborhood, loc.ds_EnderecoCompostoSU,loc.ds_TipoOrdemServico,loc.ds_TipoProprio,loc.nm_Local,loc.qt_Area,hi.hty_id, hi.cp_DataInicioServico ,hi.cp_HoraInicioServico , hr.cp_DataTerminoServico ,hr.cp_HoraTerminoServico -- tem de retornar null --hr.cp_ConfirmaProprio from [dbo].[tmpTask] as tsk INNER JOIN [dbo].[tmpAgent] as agt on tsk.age_id = agt.age_id INNER JOIN [dbo].[tmpPIVOT_Local] as loc on tsk.loc_id = loc.loc_id INNER JOIN [dbo].[tmpPIVOT_at_DataHoraInicial] as hi on tsk.tsk_id = hi.tsk_id INNER JOIN [dbo].[tmpPIVOT_at_DataHoraFinal] as hr on tsk.tsk_id = hr.tsk_id where cp_ConfirmaProprio LIKE 'NÃO' Union SELECT agt.age_id,loc.loc_id,agt.age_integrationid,agt.age_name,loc.loc_integrationid,loc.loc_description,loc.loc_neighborhood, loc.ds_EnderecoCompostoSU,loc.ds_TipoOrdemServico,loc.ds_TipoProprio,loc.nm_Local,loc.qt_Area,hi.hty_id, hi.cp_DataInicioServico,hi.cp_HoraInicioServico, -- tem de retornar null hr.cp_DataTerminoServico,hr.cp_HoraTerminoServico --hr.cp_ConfirmaProprio from [dbo].[tmpTask] as tsk INNER JOIN [dbo].[tmpAgent] as agt on tsk.age_id = agt.age_id INNER JOIN [dbo].[tmpPIVOT_Local] as loc on tsk.loc_id = loc.loc_id INNER JOIN [dbo].[tmpPIVOT_at_DataHoraInicial] as hi on tsk.tsk_id = hi.tsk_id INNER JOIN [dbo].[tmpPIVOT_at_DataHoraFinal] as hr on tsk.tsk_id = hr.tsk_id where cp_ConfirmaProprio LIKE 'SIM'
Respostas
-
Deleted
- Sugerido como Resposta Robson William Silva quinta-feira, 13 de abril de 2017 11:57
- Marcado como Resposta Robson William Silva quinta-feira, 13 de abril de 2017 11:57
Todas as Respostas
-
Deleted
- Sugerido como Resposta Robson William Silva terça-feira, 11 de abril de 2017 13:19
-
Obrigado pela resposta José
Fiz uma alteração no código
SELECT agt.age_id, loc.loc_id, agt.age_integrationid, agt.age_name, loc.loc_integrationid, loc.loc_description, loc.loc_neighborhood, loc.ds_EnderecoCompostoSU, loc.ds_TipoOrdemServico, loc.ds_TipoProprio, loc.nm_Local, loc.qt_Area, hi.hty_id, hi.cp_DataInicioServico,hi.cp_HoraInicioServico, case when cp_ConfirmaProprio = 'NÃO' then NULL else hr.cp_DataTerminoServico end as cp_DataTerminoServico, case when cp_ConfirmaProprio = 'NÃO' then NULL else hr.cp_HoraTerminoServico end as cp_HoraTerminoServico from [dbo].[tmpTask] as tsk INNER JOIN [dbo].[tmpAgent] as agt on tsk.age_id = agt.age_id INNER JOIN [dbo].[tmpPIVOT_Local] as loc on tsk.loc_id = loc.loc_id INNER JOIN [dbo].[tmpPIVOT_at_DataHoraInicial] as hi on tsk.tsk_id = hi.tsk_id INNER JOIN [dbo].[tmpPIVOT_at_DataHoraFinal] as hr on tsk.tsk_id = hr.tsk_id
Preciso agora juntar dois resultados
218683 17309255 18 EQUIPE 18 857 2PLA0036 - CAMPO DE FUTEBOL - BRASILIA PLANALTO ONEDA ROTEIRO NORMAL CAMPO DE FUTEBOL BRASILIA 10125.5 44769955 2016-06-02 14:26 NULL NULL
218683 17309255 18 EQUIPE 18 857 2PLA0036 - CAMPO DE FUTEBOL - BRASILIA PLANALTO ONEDA ROTEIRO NORMAL CAMPO DE FUTEBOL BRASILIA 10125.5 44842893 2016-06-03 07:12 2016-06-03 10:33
Nesse eu teria que unir o campo hi.cp_DataInicioServico,hi.cp_HoraInicioServico da primeira linha com o cp_DataTerminoServico,cp_HoraTerminoServico -
Deleted
- Sugerido como Resposta Robson William Silva quinta-feira, 13 de abril de 2017 11:57
- Marcado como Resposta Robson William Silva quinta-feira, 13 de abril de 2017 11:57