Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

montano

UNION esta diminuindo ao invez de juntar

Recommended Posts

Tenho um Select union que quando eu executo me retorna menos linhas doque quando nao tem o union

 

retorna 55 linhas

SELECT n_contrato FROM contrato_tv WHERE substring( data_situacao , 1 , 7 ) = '2009-10' AND situacao NOT IN (SELECT cod FROM situacoes WHERE representacao = '3') AND data_agendamento != '0000-00-00'
UNION
SELECT n_contrato FROM backlog_tv WHERE substring( data_situacao , 1 , 7 ) = '2009-10' AND situacao NOT IN (SELECT cod FROM situacoes WHERE representacao = '3') AND data_agendamento != '0000-00-00'

Retorna 59 linhas

SELECT n_contrato FROM contrato_tv WHERE substring( data_situacao , 1 , 7 ) = '2009-10' AND situacao NOT IN (SELECT cod FROM situacoes WHERE representacao = '3') AND data_agendamento != '0000-00-00'

OBS: Se eu selecionar o cod junto, digamos cod e n_contrato ai ele me acha certo os 59. Porque preciso ter o cod que seria a PK junto na consulta?

 

Obrigado pela atenção.. Agradeço mt

Compartilhar este post


Link para o post
Compartilhar em outros sites

UNION tem um group by imbutido nele, sendo assim mto provavelmente você tem linha duplicada na sua tabela.

Para nao usar o agrupamento imbutido...

 

 

SELECT n_contrato FROM contrato_tv WHERE substring( data_situacao , 1 , 7 ) = '2009-10' AND situacao NOT IN (SELECT cod FROM situacoes WHERE representacao = '3') AND data_agendamento != '0000-00-00'

UNION ALL

SELECT n_contrato FROM backlog_tv WHERE substring( data_situacao , 1 , 7 ) = '2009-10' AND situacao NOT IN (SELECT cod FROM situacoes WHERE representacao = '3') AND data_agendamento != '0000-00-00'

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.