Ajuda com Sql com 2 detalhes

Delphi

15/02/2005

Ola caro amigos,


Estou desenvolvendo um controle de produção onde tenho 3 tabelas: Processo, matéria prima e Mão de Obra . Quero criar um select onde vou ter a tabela mestre processo com os dois detalhes Mão de Obra e Matéria prima. Como faço isto onde vão acontecer casos em que o processo não vai ter mão de obra.

Esta query vai ser usada para impressão.


Se alguém puder me ajudar agradeço.

Tenho que Fazer este processo nos Banco de dados Paradox e FireBird

Hugo Fabrício


Hugofab

Hugofab

Curtidas 0

Respostas

Cristiam

Cristiam

15/02/2005

Não entendi muito bem o que vc quer mas,
Vc quer fazer algo parecido?

Select * from Processo where CodMaodeObra in (Select CodMaodeObra where CodMateriaPrima in ( Select CodMateriaPrima where Campo = ´x´)

Ou
Select * from Processo where CodMaodeObra in (Select CodMaodeObra where Campox = ´x´) and CodMateriaPrima in ( Select CodMateriaPrima where Campoy = ´y´)


GOSTEI 0
Hugofab

Hugofab

15/02/2005

Cristiam,


Deixa eu tentar explicar melhor:


Tenho a Tabela processo com o campo codigo_processo, este campo eu uso para fazer o relacionamendo com a mão de obra e a materia prima,
sendo que na tabela mão de obra tem o campo codigo_processo e na tabela materia prima também.

Quero fazer um relatório onde liste o processo (que tem alguns campos a +) e toda a materia prima que compoem o processo e toda a mão de obra

Tipo :

Processo codigo: 10 Detalhe: faça isto aquilo etc.

Materia prima

produto 1
produto 2

Mão de Obra

Corte
Costura

Via clientedataset faço isto via relacionamento.

com apenas a materia prima consegui fazer desta forma veja :

SELECT processo.*, MatPrima.* from processo, matprima WHERE matprima.CD_Processo = Processo.CD_processo

Não sei se o paradox aceita este comando in pois não esta dando certo a dica que me passou !
bom é isto ai

Obrigado pela atenção !

Hugo Fabrício


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

15/02/2005

Colega,

O operador IN é suportado pelo BDE. Entretanto, seu eu tiver entendido sua questão, uma alternativa por meio de SQL seria o uso de LEFT <OUTER> JOIN, mas me parece mais apropriado o uso de bandas de sub-detalhe que poderiam ser encadeadas de acordo com a chave estrangeira.


GOSTEI 0
Hugofab

Hugofab

15/02/2005

Aroldo Zanela,

Consegui usar o comando in, e pesquisando no Fórum achei algo sobre o LEFT <OUTER> JOIN, só que o problema era a repetição, não sei se estava fazendo correto no FORTES REPORT; mas ai achei uma solução para usar comandos SQL e fazer o relacionamento mestre Detalhe, usei o Clientedataset coloquei um Group e 2 subdetalhes, funcionou correto.

Obrigado pela atenção

Hugo Fabrício


GOSTEI 0
POSTAR