Creare una query da altre query

sabato 11 novembre 2006 - 15.56

maxtoni Profilo | Newbie

Il problema è il seguente:

devo creare una query basata su due tabelle e altre 4 query (che a loro volta si basano su 2 tabelle)

in access riesco tranquillamente mettendo in relazione fra loro tabelle e query esempio:

SELECT linea.linea, viaggio.viaggio, Query1.SommaDiPAX AS pax1, Query2.SommaDiPAX AS pax2, Query3.SommaDiPAX AS pax3, Query4.SommaDiPAX AS pax4, viaggio.id_viaggio
FROM ((((linea LEFT JOIN Query2 ON linea.id_linea = Query2.id_linea) LEFT JOIN Query3 ON linea.id_linea = Query3.id_linea) INNER JOIN viaggio ON linea.id_viaggio = viaggio.id_viaggio) LEFT JOIN Query4 ON linea.id_linea = Query4.id_linea) LEFT JOIN Query1 ON linea.id_linea = Query1.id_linea
GROUP BY linea.linea, viaggio.viaggio, Query1.SommaDiPAX, Query2.SommaDiPAX, Query3.SommaDiPAX, Query4.SommaDiPAX, viaggio.id_viaggio
HAVING (((viaggio.id_viaggio)="7"));

le query create sono query1, query2, query3, query4 e le tabelle linea e viaggio

il problema è come riuscire a tradurre il codice in vb.net 2003 ?

Dim cmd3 As New OdbcCommand("SELECT linea.linea, viaggio.viaggio, Query1.SommaDiPAX AS pax1, Query2.SommaDiPAX AS pax2, Query3.SommaDiPAX AS pax3, Query4.SommaDiPAX AS pax4, viaggio.id_viaggio FROM ((((linea LEFT JOIN Query2 ON linea.id_linea = Query2.id_linea) LEFT JOIN Query3 ON linea.id_linea = Query3.id_linea) INNER JOIN viaggio ON linea.id_viaggio = viaggio.id_viaggio) LEFT JOIN Query4 ON linea.id_linea = Query4.id_linea) LEFT JOIN Query1 ON linea.id_linea = Query1.id_linea GROUP BY linea.linea, viaggio.viaggio, Query1.SommaDiPAX, Query2.SommaDiPAX, Query3.SommaDiPAX, Query4.SommaDiPAX, viaggio.id_viaggio HAVING (((viaggio.id_viaggio)=""7""))", cn)

ma ovviamente non funziona in quanto nel mio database sql non ci sono tabelle che si chiamano query1, query2, query3, query4

qualcuno mi può aiutare?

lbenaglia Profilo | Guru

>ma ovviamente non funziona in quanto nel mio database sql non
>ci sono tabelle che si chiamano query1, query2, query3, query4

Che significa questa frase?
Cos'è il "mio database sql"?

Se da VB 2003 ti connetti allo stesso database Access le query saranno presenti pertanto la tua SELECT deve funzionare!

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

maxtoni Profilo | Newbie

scusami,

non ti ho detto che sto lavorando su un file mysql e ho fatto una prova esportando il database in access. Devo produrre lo stesso codice per mysql

lbenaglia Profilo | Guru

>non ti ho detto che sto lavorando su un file mysql e ho fatto
>una prova esportando il database in access. Devo produrre lo
>stesso codice per mysql

Non conosco MySQL, ma leggendo il manuale vedo che la versione 5.0 ha introdotto le viste:
http://dev.mysql.com/doc/refman/5.0/en/views.html
A questo punto non devi fare altro che creare per ogni query Access una vista MySQL.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

maxtoni Profilo | Newbie

ti ringrazio, ma il problema ora è creare le viste come le query.

inoltre io uso vb 2003, non so se le supporta

lbenaglia Profilo | Guru

>ti ringrazio, ma il problema ora è creare le viste come le query.
>
>inoltre io uso vb 2003, non so se le supporta

Ma che c'entra VB con MySQL?!
Le viste devi crearle in MySQL utilizzando il comando CREATE VIEW nomeVista ed incollando la query di SELECT delle query Access (verificando la compatibilità dei comandi Jet-SQL con il dialetto SQL di MySQL).
Te l'ho detto, non conosco MySQL ma sicuramente esisterà un tool grafico o command line che ti permetterà di sottomettere dei comandi SQL all'engine.
Facendo una velocissima ricerca in Google specificando "mysql client tools" il primo link fa riferimento proprio al "MySQL Command-Line Tool":
http://dev.mysql.com/doc/refman/5.0/en/mysql.html

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5