Ir para conteúdo

Arquivado

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

Ericsson Berg

Dois selects trazendo dados específicos de cada

Recommended Posts

Tenho dua tabelas A e B, e preciso que ocorra o seguinte:



Através do primeiro select, o segundo faça uma pesquisa específica com o campo COD_EMRPESA e traga os dados.



Select A



SELECT EMPRESAS.COD_EMPRESA COD_EMP,
EMPRESAS.NOME EMPRESA,
SUM((ESTOQUE.QTDE)*(ITENS_CUSTOS.CUSTO_CONTABIL)) VLR_ESTOQUE

FROM ".$schema.".ITENS_FORNECEDOR,
".$schema.".ITENS_CUSTOS ITENS_CUSTOS,
".$schema.".ESTOQUE,
".$schema.".EMPRESAS
WHERE ITENS_CUSTOS.COD_ITEM = ITENS_FORNECEDOR.COD_ITEM
AND ITENS_CUSTOS.COD_FORNECEDOR = ITENS_FORNECEDOR.COD_FORNECEDOR
AND ESTOQUE.COD_ITEM = ITENS_CUSTOS.COD_ITEM
AND ESTOQUE.COD_FORNECEDOR = ITENS_CUSTOS.COD_FORNECEDOR
AND ESTOQUE.COD_EMPRESA = ITENS_CUSTOS.COD_EMPRESA
AND EMPRESAS.COD_EMPRESA = ESTOQUE.COD_EMPRESA
AND ESTOQUE.QTDE > 0
GROUP BY EMPRESAS.COD_EMPRESA, EMPRESAS.NOME
ORDER BY EMPRESAS.NOME

Select B



SELECT EMPRESAS.COD_EMPRESA COD_EMP,
EMPRESAS.NOME,
SUM(ESTOQUE.QTDE * ITENS_CUSTOS.CUSTO_CONTABIL) VLR_OBSOLETO
FROM ".$schema.".ITENS,
".$schema.".ITENS_CUSTOS,
".$schema.".ITENS_FORNECEDOR,
".$schema.".ESTOQUE,
".$schema.".EMPRESAS,
".$schema.".FORNECEDOR_ESTOQUE,
".$schema.".ITENS_GRUPO_INTERNO,
".$schema.".ITENS_SUB_GRUPO
WHERE ITENS_CUSTOS.COD_ITEM = ITENS.COD_ITEM
AND ITENS_CUSTOS.COD_ITEM = ITENS_FORNECEDOR.COD_ITEM
AND ITENS_CUSTOS.COD_FORNECEDOR = ITENS_FORNECEDOR.COD_FORNECEDOR
AND ITENS_CUSTOS.COD_EMPRESA = EMPRESAS.COD_EMPRESA
AND ITENS_FORNECEDOR.COD_ITEM = ITENS.COD_ITEM
AND ESTOQUE.COD_ITEM = ITENS_CUSTOS.COD_ITEM
AND ESTOQUE.COD_FORNECEDOR = ITENS_CUSTOS.COD_FORNECEDOR
AND ESTOQUE.COD_EMPRESA = ITENS_CUSTOS.COD_EMPRESA
AND EMPRESAS.COD_EMPRESA = ESTOQUE.COD_EMPRESA
AND EMPRESAS.COD_EMPRESA = ITENS_CUSTOS.COD_EMPRESA
AND FORNECEDOR_ESTOQUE.COD_FORNECEDOR = ITENS_CUSTOS.COD_FORNECEDOR
AND FORNECEDOR_ESTOQUE.COD_FORNECEDOR = ITENS_FORNECEDOR.COD_FORNECEDOR
AND ITENS_GRUPO_INTERNO.COD_GRUPO_INTERNO = ITENS.COD_GRUPO_INTERNO
AND ITENS_GRUPO_INTERNO.COD_GRUPO_INTERNO = ITENS_SUB_GRUPO.COD_GRUPO_INTERNO
AND ITENS_SUB_GRUPO.COD_SUB_GRUPO_INTERNO = ITENS.COD_SUB_GRUPO_INTERNO
AND ITENS_SUB_GRUPO.COD_GRUPO_INTERNO = ITENS_GRUPO_INTERNO.COD_GRUPO_INTERNO
AND (ESTOQUE.QTDE > 0
AND ((trunc(sysdate-ITENS_CUSTOS.ultima_venda) >= 0
AND trunc(sysdate-itens_custos.ultima_compra) >= '0')
OR (ITENS_CUSTOS.ULTIMA_VENDA IS NULL
AND ITENS_CUSTOS.ULTIMA_COMPRA IS NULL )
OR (trunc(sysdate-itens_custos.ultima_compra) >= '0'
AND ITENS_CUSTOS.ULTIMA_VENDA IS NULL )
OR ( trunc(sysdate-ITENS_CUSTOS.ultima_venda) >= 0
AND ITENS_CUSTOS.ULTIMA_COMPRA IS NULL ))
AND FORNECEDOR_ESTOQUE.NOME_FORNECEDOR NOT LIKE '%Outro%' )

GROUP BY EMPRESAS.COD_EMPRESA, EMPRESAS.NOME
ORDER BY EMPRESAS.NOME

E estes dados sejam carregados via PHP.



Alguma dica????



Compartilhar este post


Link para o post
Compartilhar em outros sites

E estes dados sejam carregados via PHP.

Expressei mal!!

 

Tem como utilizar um union all ou inner join nestas duas tabelas??

 

Não queria fazer o primeiro select carregar uma variável para poder carregar o segundo.

 

Escrevendo a ação:

 

Consulto o primeiro select, ele me traz os dados de código empresa e valor do estoque, gravo o código empresa em uma variável que com ela realizo uma outra consulta no segundo select para trazer o valor de peças acima de x dias estão em estoque na empresa do código gravado na variável utilizada para realizar a pesquisa.

 

No caso queria fazer este processo somente via SQL.

 

Union all ou inner join resolveriam?

 

Se poder dar um exemplo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use as duas como tabelas virtuais e faça um join , o valor do "saldo da empresa" vai replicar para todas as linhas da empresa

 

Ou

 

Faça dois cursores , o segundo dentro do 1º

 

Depende de como vai usar isto.

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.