10 messaggi dal 10 dicembre 2010
Ciao
sto cercando di fare una query su due tabelle, con delle condizioni e una SubQuery...oppure una condizione di MIN.
Cioè dal risultato della query mi vengono due record, e devo prendere quello che ha il valore minimo in uno dei campi.

per esempio

ID NOME COGNOME SOPRANNOME dalla tabella clienti
ETA dalla tabella datianagrafici

quindi

SELECT * FROM clienti A,datianagrafici B WHERE A.NOME = 'Filippo' AND
A.COGNOME = 'Rossi' AND A.SOPRANNOME LIKE '%Pippo%' AND B.ETA >'30' AND B.ETA ....è la minore tra quelle trovate!

Non so come scrivere l'ultima parte.
Ho provato : (SELECT MIN(datianagrafici.ETA) FROM datianagrafici)
ma non va!
mi potete aiutare? Grazie
Sintassi SQL da verificare, è tanto che non lo uso più direttamente, ma hai provato a fare una cosa simile?

SELECT * FROM clienti A,datianagrafici B WHERE A.NOME = 'Filippo' AND A.COGNOME = 'Rossi' AND A.SOPRANNOME LIKE '%Pippo%' AND (SELECT MIN(datianagrafici.ETA) FROM datianagrafici WHERE B.ETA >'30')

Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna.
-Albert Einstein-
678 messaggi dal 12 maggio 2001
www.idioteca.it
forse mi sfugge qualcosa... ma una semplice join di questo tipo potrebbe andare bene?
SELECT clienti.*, MIN(B.ETA) FROM clienti A LEFT OUTER JOIN datianagrafici B ON A.campoX = B.campoX  WHERE A.NOME = 'Filippo' AND
A.COGNOME = 'Rossi' AND A.SOPRANNOME LIKE '%Pippo%' AND B.ETA >'30' 

Ovviamente ti devi gestire la sintassi per la query dato che quel MIN implica qualche modifica al codice che ti ho postato.
ciao
ma così non ricava i dati della tabella datianagrafici, che sembrerebbero interessargli vista la query
SELECT * FROM clienti A,datianagrafici B

Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna.
-Albert Einstein-
10 messaggi dal 10 dicembre 2010
Si esatto non volevo perdere i dati anagrafici, però entrambe le soluzioni sono interessanti!
Grazie ora provo.
10 messaggi dal 10 dicembre 2010
La soluzione di Giangi Funziona!
Però per dover avere tutti i dati devo probab. specificare più campi.
Quella di Fileman, anche se avrei scomesso che avrebbe funzionato, non funziona. Non so perchè....Boh.
Cmnq Grazie ad entrambi, ho risolto!
10 messaggi dal 10 dicembre 2010
AHHHHHHHHHHHHHH ORRORE!

mi seleziona il Cliente Sbagliato e l'età giusta!!
Cioè se ho due
ID Nome Cognome Soprannome Eta
34 FILIPPO ROSSI PIPPO 30
72 FILIPPO ROSSI PIPPO 40

il risultato della query
mi seleziona il 72 e mi fa vedere l'età 30!!

72 FILIPPO ROSSI PIPPO 30

Che pizza!
E come si fa ora??
misteri di SQL, ecco perchè amo Linq

prova a levare "clienti.*" e lasciare solo "*" nella query di giangi_77

PS: per il tuo ultimo post, ai messo clienti.id_cliente = datianagrafici.id_cliente ?
Modificato da fileman il 10 dicembre 2010 12.04 -

Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna.
-Albert Einstein-

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.