Newsgroup: it.comp.lang.visual-basic
Titolo: Problema Query

Ciao ragazzi, ho 1 problema con 1 query.
Allora, ho 3 tabelle:
CLIENTE
idcliente
nome
cognome
ecc ecc ecc
VIDEOCASSETTE
IDcassetta
nome
descrizione
ecc ecc
NOLEGGI
IDcliente
IDcassetta
datainizio
datafine
Ho bisogno di fare 1 query che cerchi all'interno della tabella noleggi e mi
visualizzi però:
Nome cliente, nomcassetta, data inizio, data fine
Non so come eseguirla (in VB6)
Aiutatemi plz :)
Saluto tutti, Simone

 Nome cliente, nomcassetta, data inizio, data fine
Select B.Nome_Cliente, C.Nome_Cassetta,
A.Data_Inizio, A.Data_Fine
From NOLEGGI as A
Inner Join CLIENTI as B
On A.IDCliente=B.IDCliente
Inner Join VIDEOCASSETTE as C
On A.IDCassetta=C.IDCassetta
Questa qui sopra vale solo se hai garantito l'integrità referenziale, 
altrimenti rischi di perdere traccia dei noleggi con cliente o cassetta 
mancanti dall'anagrafica.
Se non hai impostato alcun diagramma referenziale, è meglio usare la 
versione con i Left Outer:
Select Nome_Cliente=Coalesce(B.Nome_Cliente,'cliente non individuato'),
Nome_Cassetta=Coalesce( C.Nome_Cassetta,'cassetta non individuata'),
A.Data_Inizio, A.Data_Fine
From NOLEGGI as A
Left Outer Join CLIENTI as B
On A.IDCliente=B.IDCliente
Left Outer Join VIDEOCASSETTE as C
On A.IDCassetta=C.IDCassetta
Per correttezza, dovresti anche indicare un order by, e soprattutto mi 
auguro che esista un IDNoleggio che non hai riportato...
Ciao
Alberto
-- 
"C'è un Calvelli dentro ognuno di noi" (cit.) 

 ha scritto nel messaggio
news:d3imud$u9n$1...@area.cu.mi.it...


 comunque non ho creato nessun campo idnoleggio, non ne vedo l'utilità...
è buona politica prevedere un campo chiave in ciascuna tabella che si
genera.
se non sai il perchè, fidati, prima o poi lo scoprirai.
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 se non sai il perchč, fidati, prima o poi lo scoprirai.


 l'utilità...
Se non hai un campo chiave univoca, sei obbligato a usare come chiave una 
combinazione di campi.
Questo può funzionare se puoi garantire assolutamente l'univocità della 
relazione, ma nel tuo caso non puoi.
Non puoi escludere a priori che un cliente noleggi una cassetta due volte 
nello stesso istante. O, meglio, forse lo puoi escludere finchè c'è un solo 
client che lavora, ma nel momento in cui tu dovessi avere due client, ti 
toccherebbe mettere mano al db per stare tranquillo. Per cui, visto il peso 
irrisorio, e i benefìci in termini di efficienza delle query, non vedo un 
solo motivo per non inserirlo. Salvo la pigrizia, ma è un altro discorso.


 ha scritto nel messaggio
news:d3itou$a7g$1...@area.cu.mi.it...


 come avrete capito con i database nn sono proprio il massimo...
Chiariamoci: io non ho qui il tuo db, e non sono quindi in grado di testare 
la query nella finestrella Sql (a questo punto ho visto che lavori con 
Access), per cui non posso aiutarti.
Ripeto: se copiaincolli la query nella finestrella di esecuzione Sql, e 
premi il bottoncino 'esegui', hai modo di testare e debuggare alla velocità 
della luce, altrimenti fai in due giorni ciò che faresti in un minuto...
Guarda anche la guida di Access e gli esempi sulle query, eventualmente.


 ha scritto nel messaggio
news:d3iv24$c8b$1...@area.cu.mi.it...


 della luce, altrimenti fai in due giorni ciò che faresti in un minuto...
:)
mica sempre...
ieri sera sono impazzito a cercare di far andare una query del tipo
select a.pippo, b.pluto from
paperino as a,
(select pp, dd from paperoga)
where 
a.id
 = b.ref
per poi scoprire che nella finestrella sql di access 97 non va, mentre
utilizzando il provider jet 4.0 funziona.


 ha scritto nel
messaggio news:d3ive8$uaq$1...@news.newsland.it...


 server.IDserver = noleggi.IDserver", connessione
Vorresti dirmi che con Access ci vogliono le parentesi???
Che puttanata...
Alberto
-- 
"C'č un Calvelli dentro ognuno di noi" (cit.) 

 ha scritto nel messaggio
news:d3j556$n5c$1...@area.cu.mi.it...
