|
Caro colega,
O resultado q vc quer, ou pelo menos o resultado q vc desenhou
na base do seu email.... não pode ser obtido com uma única
instrução SQL....
Porquê...?
Porque, de acordo, com a cardinalidade das entidades q vc
desenhou no corpo do seu email... a tabela ORCAMENTO não se encontra
diretamente relacionada a tabela VENDAS, ou seja, vc teria uma modelagem de
dados mais ou menos como a seguinte(desculpe o horrível
desenho):
---------------------------
1 N
--------------------------------
---
CLIENTE --- <---------------- ----- ORCAMENTO
----
---------------------------
--------------------------------
^
1
|
N
-------------------------
---
VENDA ---
-------------------------
^ 1
|
N
-------------------------
--- VENDA ---
---
ITEM ---
-------------------------
Perceba q vc pode relacionar perfeitamente bem as tabelas
VENDA ITEM e VENDA com a tabela CLIENTE em apenas uma instrução
SQL.... Assim como, também, vc pode relacionar a tabela ORCAMENTO
perfeitamente bem com a tabela CLIENTE em apenas uma instrução
SQL, no entanto o relacionamento das quatro tabelas em uma única
instrução SQL não é possível, pois provocaria
o mesmo efeito de produto cartesiano o qual vc já experimentou antes em
outras dúvidas suas anteriores.
Para resolver esse problema vc precisa montar uma matriz q
deverá ter o formato das informações as quais vc deseja
mostrar e, à partir daí, ir construindo o resultado através
de duas instruções SQL, uma para cada braço de
relacionamentos.
Vc pode fazer isso em JAVA... ou através de uma Stored
Procedure (recomendado) do gerenciador de banco de dados q estiver
utilizando....
Caso deseje eu posso te dar um exemplo prático disso,
mas preciso saber q gerenciador de banco de dados vc está utilizando para
poder montar o exemplo com as instruções corretas, pois as
maneiras de fazê-lo podem variar ligeiramente de um gerenciador para
outro.
[]'s
Antonip Carlos Antunes
|
- Re: [SouJava-J] Consultas com tabelas relaciona... Antonio Carlos A. da Silva
- Re: [SouJava-J] Consultas com tabelas rela... Elson Augusto Cruz Junior
