1
resposta

Como resolver esse join que está resultando em um produto cartesiano?

select ordemservico.ano_ordemservico , ordemservico.nr_ordemservico , apontamento.ano_ordemservico , apontamento.nr_ordemservico , apontamento.numero_apontamento as "NR. APONTAMENTO" , apontamento.ano_apontamento as "ANO APONTAMENTO" , ordemservicoitem.cod_fazenda , ordemservicoitem.zona , ordemservicoitem.cod_talhao , ordemservicoitem.cod_safra , ordemservicoitem.cod_objetocusto , ordemservicoitem.cod_operacao , ordemservicoitem.area as "AREA DA O.S" , apontamento.hora_inicial , apontamento.hora_final , itens_apontamento.cod_operacaoagricola , itens_apontamento.horainicial , itens_apontamento.horafinal , itens_apontamento.km_final , itens_apontamento.km_final , itens_apontamento.tothoras_trabalhadas , itens_apontamento.cod_talhao as "TALHAO TRABALHADO" , itens_apontamento.area as "AREA REALIZADA" , itens_apontamento.cod_implemento , itens_apontamento.cod_equipamento , itens_apontamento.horimetro_inicial , itens_apontamento.horimetro_final from agricola.ordemservico ordemservico , agricola.ordemservicoitem ordemservicoitem , automotivo.apontamento apontamento , automotivo.itens_apontamento itens_apontamento-- ORDEM DE SERVIÇO COM ITEM ORDEM DE SERVIÇO where ordemservico.nr_ordemservico = ordemservicoitem.nr_ordemservico and ordemservico.ano_ordemservico = ordemservicoitem.ano_ordemservico -- ORDEM DE SERVIÇO COM APONTAMENTO and ordemservico.ano_ordemservico = apontamento.ano_ordemservico and ordemservico.nr_ordemservico = apontamento.nr_ordemservico -- APONTAMENTO COM ITEM DE APONTAMENTO and apontamento.ano_apontamento = itens_apontamento.ano_apontamento

and apontamento.numero_apontamento = itens_apontamento.numero_apontamento

and --FILTRO and ordemservico.ano_ordemservico = 2020 and ordemservicoitem.cod_safra = 2020 and apontamento.numero_apontamento = 7516 and itens_apontamento.cod_operacaoagricola = 9109

1 resposta

Olá Douglas, Bom dia

No seu código a ordemservicoitem existe a nr_ordemservico?

select ordemservico.ano_ordemservico ,
       ordemservico.nr_ordemservico , 
       apontamento.ano_ordemservico , 
       apontamento.nr_ordemservico , 
       apontamento.numero_apontamento as "NR. APONTAMENTO" ,
       apontamento.ano_apontamento as "ANO APONTAMENTO" ,
       ordemservicoitem.cod_fazenda ,
       ordemservicoitem.zona ,
       ordemservicoitem.cod_talhao ,
       ordemservicoitem.cod_safra , 
       ordemservicoitem.cod_objetocusto , 
       ordemservicoitem.cod_operacao , 
       ordemservicoitem.area as "AREA DA O.S" , 
       apontamento.hora_inicial , 
       apontamento.hora_final , 
       itens_apontamento.cod_operacaoagricola , 
       itens_apontamento.horainicial , 
       itens_apontamento.horafinal ,
       itens_apontamento.km_final , 
       itens_apontamento.km_final , 
       itens_apontamento.tothoras_trabalhadas , 
       itens_apontamento.cod_talhao as "TALHAO TRABALHADO" , 
       itens_apontamento.area as "AREA REALIZADA" , 
       itens_apontamento.cod_implemento , 
       itens_apontamento.cod_equipamento , 
       itens_apontamento.horimetro_inicial , 
       itens_apontamento.horimetro_final 
       from agricola.ordemservico ordemservico , 
               agricola.ordemservicoitem ordemservicoitem , 
               automotivo.apontamento apontamento , 
               automotivo.itens_apontamento itens_apontamento
-- ORDEM DE SERVIÇO COM ITEM ORDEM DE SERVIÇO where ordemservico.nr_ordemservico = ordemservicoitem.nr_ordemservico and ordemservico.ano_ordemservico = ordemservicoitem.ano_ordemservico 
-- ORDEM DE SERVIÇO COM APONTAMENTO and ordemservico.ano_ordemservico = apontamento.ano_ordemservico and ordemservico.nr_ordemservico = apontamento.nr_ordemservico 
-- APONTAMENTO COM ITEM DE APONTAMENTO and apontamento.ano_apontamento = itens_apontamento.ano_apontamento
        and apontamento.numero_apontamento = itens_apontamento.numero_apontamento
        and 
--FILTRO and ordemservico.ano_ordemservico = 2020 and ordemservicoitem.cod_safra = 2020 and apontamento.numero_apontamento = 7516 and itens_apontamento.cod_operacaoagricola = 9109

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software