Luiz Fernando Posted May 28, 2015 Report Share Posted May 28, 2015 Colegas ve se alguém poderia me ajudar nisto este exemplo de select funciona normal cSql:="SELECT pe.vendedor,pe.produto,pe.volume,pe.qtd,pe.valor,p.descricao,e.qtd,p.volume,pe.pedido,pe.grupo" cSql+=",gr.nome,p.compo_imp" cSql+=" FROM pedido as pe" cSql+=" LEFT JOIN produto as p on pe.produto = p.codigo" cSql+=" LEFT JOIN grupo as gr on p.grupo = gr.codigo" cSql+=" LEFT JOIN (SELECT * from estoque WHERE codigo ='"+aTermi[1,1]+"') as e on pe.produto = e.produto" neste outro select eu tb preciso usar a sexta linha do select acima mais não da certo cSql="SELECT pe.produto,pr.descricao,sum(pe.qtd)" cSql+=" from pedido as pe, produto as pr, vendas as ve" cSql+=" LEFT JOIN (SELECT * from estoque WHERE codigo ='"+cGet[4]+"') as e on pe.produto = e.produto" cSql+=" WHERE pe.produto = pr.codigo AND pe.pedido = ve.pedido" a unica diferente que que no from tenho varias tabela, sera que qdo usa este processo não da certo usar tb um left join junto Obrigado Quote Link to comment Share on other sites More sharing options...
Geraldo (gbsilva) Posted May 29, 2015 Report Share Posted May 29, 2015 Luiz tudo bem! Nunca vi um FROM assim? Achei estranho também tem um SUM(), mas não tem GROUP BY. //-> Eu uso bastante e fica assim, esse é apenas um exemplo: SELECT a.produto, b.descricao, SUM(c.qtde) AS qtdeFROM tab1 AS aLEFT JOIN tab2 AS b ON a.chaves = b.chaveLEFT JOIN tab3 AS c ON a.chave = c.chaveLEFT JOIN // ou INNER JOIN// select interno( SELECT chave,codigo,campo3 FROM tab4 WHERE codigo = '"+cGet[4]+"' ) res // esse res seria o resultado do select internoON tab1.chave = res.chave // chave da tabela 1 = chave do select internoWHERE ???? // se tiver uma segunda condição coloca aqui pode usar da tab1, tab2, tab3 ou do resGROUP BY a.produto // se tem uma soma tem que ter um group byORDER BY ??? // se for o caso //-> Esse é um SELECT em produção e tem praticamente a mesma lógica, no caso em SQL Server no php, mas a lógica é a mesma. SELECT EXT.id_grupo_empresa, EMP.nome_contrato, EXT.nome, EXT.titulo_servico, RES.es, RES.at, FUN.telefone FROM GCORE..TAB_DADOS_ACQ_EXT EXT INNER JOIN GCORE_CAD_EMPRESAS_AREAS..cad_func FUN ON EXT.re_fisc = FUN.re_fisc INNER JOIN GCORE_CAD_EMPRESAS_AREAS..cad_empresa_contrato EMP ON EXT.id_empresa_contrato = EMP.id_empresa_contrato INNER JOIN (SELECT AMO.acq,AMO.es,AMO.at FROM GCORE..TAB_DADOS_AMOSTRAS_1 AMO UNION ALL SELECT BDLP.acq,BDLP.es,BDLP.at FROM GCORE..TAB_DADOS_AMOSTRAS_BD_LP BDLP UNION ALL SELECT DDR.acq,DDR.es,DDR.at FROM GCORE..TAB_DADOS_AMOSTRAS_DDR DDR UNION ALL SELECT PZ.acq,PZ.es,PZ.at FROM GCORE..TAB_DADOS_AMOSTRAS_PZ PZ UNION ALL SELECT LIMP.acq,LIMP.es,LIMP.at FROM GCORE..TAB_DADOS_AMOSTRAS_TUP_LIMP LIMP ) RES ON EXT.acq = RES.acq WHERE Convert(CHAR(10),EXT.data_fisc,103) = '$data' AND EXT.id_prod NOT IN (38,40) AND EXT.re_fisc NOT IN (1063880,50009,50152,340540) AND EXT.titulo_servico <> 'ESP ADSL AUTOINS' AND EXT.status NOT IN(8) AND EXT.titulo_servico NOT like '%REINSPEÇÃO%' GROUP BY EXT.id_grupo_empresa, EMP.nome_contrato, EXT.nome, RES.es, RES.at, EXT.titulo_servico, FUN.telefone ORDER BY EXT.id_grupo_empresa, EMP.nome_contrato, EXT.nome, RES.es, RES.at, EXT.titulo_servico ; Espero ter ajudado. Sds, Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted May 29, 2015 Author Report Share Posted May 29, 2015 Ola Geraldo vlw pelos exemplos vou analisar eles aqui com calma, sobre a forma de usar o from acima foi os amigo aqui do forum mesmo que me ajudaram numa outra situação Obs: viu sobre o group by eu não postei a instrução inteira, achei que irei complicar, pois o que queria saber era se usando um from com varias tabelas o left join iria funcionar. Obrigado Quote Link to comment Share on other sites More sharing options...
kleyber Posted May 29, 2015 Report Share Posted May 29, 2015 Luiz Fernando bom dia, O que você deseja com esse segundo SELECT? Trazer somente os produtos que estão em um determinado pedido? Por que está inclusa a tabela de vendas? Dá pra explicar melhor tua necessidade? Quote Link to comment Share on other sites More sharing options...
Luiz Fernando Posted May 29, 2015 Author Report Share Posted May 29, 2015 Ola Kleber, o que preciso é gerar um relatorio itens vendido de um determinado centro de custo, ate ai tudo bem, mais na frente preciso exibir o estoque de um determinado almoxarifado, mais pela urgencia aqui acabei fazendo dois select separado, e atraves de um for next unifiquei as duas array, então o problema esta resolvido, depois com mais tempo volto neste select. Obrigado Quote Link to comment Share on other sites More sharing options...
Eroni Posted May 29, 2015 Report Share Posted May 29, 2015 Olá, Luiz, por acaso já tentou usar "left outer join" ao invés de simplesmente "left join" ? Porque dependendo se for junção por fora ou junção por dentro o resultado pode ser diferente caso exista registros em uma tabela e não na outra. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.