 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
daniel775 Profissional

Registrado: Quinta-Feira, 17 de Janeiro de 2013 Mensagens: 721 Localização: Amparo SP
|
Enviada: Qua Set 17, 2014 9:35 am Assunto: [RESOLVIDO] Join Select |
|
|
Bom dia,
por favor, podem me ajudar, abaixo um select um pouco grande, porém como podemos ver, tenho 4 tabelas, o problema é minha tabela frete_piscofin b.
Pois nem todos os fretes tem pis/cofins, sendo assim se ele não encontra pis cofins para tal frete e ele não lista, o que posso fazer?
| Código: |
SELECT a.empresa, c.nf, a.conhec,
sum(b.val_pis) pis,
sum(b.val_cofins) cofins,
c.val_frete,
(a.val_frete)-(a.val_tot_icms_frt_d) frete_s_icm
FROM frete a, frete_piscofin b, nf_saida c, fretexnff d
--#PRECISAVA LISTAR TAMBÉM OS FRETES QUE NAO TEM PIS COFINS#--
--###TODOS OS RELACIONAMENTOS DA TABELA B ESTAO AQUI###--
WHERE b.conhec = d.conhec
AND b.conhec = a.conhec
AND b.transportador = a.cod_transpor
AND b.serie_conhec = a.ser_conhec
AND (b.nf = c.nf OR b.nf = 0)
AND b.empresa = d.empresa
AND b.empresa = c.empresa
AND a.empresa = b.empresa
--#######################################--
AND a.conhec = d.conhec
AND a.ser_conhec = d.ser_conhec
AND c.empresa = a.empresa
AND d.nf = c.nf
AND d.empresa = c.empresa
AND d.empresa = a.empresa
AND month(c.dat_emissao) = 07
AND year(c.dat_emissao) = 2014
AND a.empresa = '40'
AND c.sit = 'N'
GROUP BY a.empresa,2,3,6,7 |
Muito obrigado _________________ "Água mole em pedra dura, tanto bate até q fura!", diz o filósofo...
"Essa !@#%& vai ter q funcionar", diz o programador.
Editado pela última vez por daniel775 em Qua Set 17, 2014 11:01 am, num total de 3 vezes |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Set 17, 2014 10:06 am Assunto: |
|
|
Bom dia,
Qual banco de dados (e versão) você está utilizando?
O comum nesse tipo de situação seria utilizar um Left Outer Join ou simplesmente Left Join. Ex:
| Código: | from TabelaA a
left join TabelaB as b
on b.IdTabelaA = a.IdTabelaA |
No exemplo acima serão retornados todos os registros de TabelaA, mesmo que não exista um registro relacionado em TabelaB.
Espero que ajude.
_________________
Assinatura: http://www.imoveisemexposicao.com.br/imoveis-alugar-guarulhos-residencial-apartamento |
|
| Voltar ao Topo |
|
 |
daniel775 Profissional

Registrado: Quinta-Feira, 17 de Janeiro de 2013 Mensagens: 721 Localização: Amparo SP
|
Enviada: Qua Set 17, 2014 10:41 am Assunto: |
|
|
Imex, bom dia,
estou utilizando informix 11.50
Seguinte, como esse select fazia parte de uma procedure, resolvi tirar a tabela de piscofins do primeiro select, sendo assim inseri os dados em uma temporaria, e depois com ela fiz o LEFT JOIN com o pis/cofins,
e deu certo.
achei que ficou mais organizado.
Obrigado.
até + _________________ "Água mole em pedra dura, tanto bate até q fura!", diz o filósofo...
"Essa !@#%& vai ter q funcionar", diz o programador. |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|