View Single Post
Old 20-02-2005, 12:33   #18
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
Come ti ho già accennato io e cionci ti ha dato il link, se tu vuoi fare una query di quel tipo, cioè una INSERT che richiama una SELECT la puoi fare benissimo ma con un unica particolarità: tutti i campi della insert devono essere i campi della select!

Se tu noti, nella tua prima query che hai postato, metti un campo fisso (preso da una variabile) e una select (che richiama 2 valori), questo nn è possibile, perchè come detto, tu nella select devi richiamare gli stessi campi della insert, non solo 2 come hai fatto.
In più nasce un secondario problema, (dico secondario perchè già in partenza è sbagliato il metodo che hai usato tu) cioè che la select tiri fuori più di un record, a questo punto proprio sarebbe sbagliato.

Per "fregare" la query, c'è un sistema che è molto usato in questi casi, proprio quando hai un parametro fisso e dei campi riciamati da una select; il trucchetto è proprio quello che ti avevo postato io. Tutto sta nel dire che il tuo campo "cliente" (ched ate era un fisso), lo mettiamo direttamente dentro alal select, in questa maniera:
Codice:
SELECT 'matteo' as cliente
naturalmente matteo è il contenuto della tua variabile, il resto della select si compone giustamente come avevi fatto te. A qeusto punto la select annidata alla insert prenderà una cosa di questo tipo:

matteo 10/10/2004 abcd
matteo 15/10/2004 efgh
matteo 18/10/2004 ilmn

cioè mettendo fisso il cliente.


Se nn ti è ancora molto chiaro, prova in sql a fare una query qlc e poi alla fine metti appunto questo: SELECT ......, 'matteo' as cliente ; e vedrai che ti tira fuori tutto quello che tu vuoi ma anche una riga con scritto sempre "matteo".


Se tu prendi la query che nn hai capito nel mio post, utilizza questo modo, questo ti risparmia tempo e velocità, perchè un for è più lento rispetto ad una query di questo tipo.

Spero di averti chiarito le idee
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!"
A. Einstein
matpez è offline   Rispondi citando il messaggio o parte di esso