Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Aiuto per query

0 views
Skip to first unread message

Giovanni

unread,
Dec 1, 2009, 11:41:16 AM12/1/09
to
Salve,

io ho la seguente situazione: una tabella 'Fatture' , ha un campo
'ID-intestatario' che rapprsenta
o l'ID del cliente (riferito alla tabella 'Clienti') o l'ID del fornitore
(riferito alla tabella 'Fornitori').

Come posso fare il JOIN alla tabella giusta ('Clienti' o 'Fornitori') ?

Nella tabella 'Fatture', ho un ulteriore campo di tipo stringa che mi indica
il tipo di fattura: vendita, oppure
acquisto. Nel caso di fattura di vendita l'ID-intestatario è riferito a un
cliente, nel caso di fattura
di acquisto, l'ID-intestatario è riferito a un fornitore.

Come posso fare una query che mi estrapoli il cliente (nel caso di fattura
di vendita) o il fornitore (nel caso di fattura di acquisto).

Grazie a tutti per l'aiuto.


--------------------------------
Inviato via http://arianna.libero.it/usenet/

Giovanni

unread,
Dec 1, 2009, 11:41:26 AM12/1/09
to

Giacomo Degli Esposti

unread,
Dec 1, 2009, 3:37:34 PM12/1/09
to
Giovanni ha scritto:

Non ci hai detto che DB stai usando, comunque puoi provare
con una vista dinamica, se il tuo DB lo supporta.
Qualcose del genere:

select *
from (
select 'vendita' as tipo, id, codice, descrizione
from clienti
union all
select 'acquisto', id, codice, descrizione
from clienti
) as clifor
join fatture on clifor.tipo = fatture.tipofattura
and clifor.id = fatture.id_intestatario

ciao
Giacomo

Roberto Montaruli

unread,
Dec 3, 2009, 7:07:27 AM12/3/09
to
On 1 Dic, 17:41, h....@libero.it (Giovanni) wrote:

> Come posso fare una query che mi estrapoli il cliente (nel caso di fattura
> di vendita) o il fornitore (nel caso di fattura di acquisto).
>

Io su oracle ho provato una cosa del genere:

select * from (
select fatture.id, fatture.type, clienti.nome
from fatture, clienti
where fatture.id = clienti.id
union
select fatture.id, fatture.type, fornitori.nome
from fatture, fornitori
where fatture.id = fornitori.id
)
where fatture.type = 'CLIENTI';

e mi escono i nomi dei soli clienti.

0 new messages