Query + ciclo while

mercoledì 22 agosto 2007 - 09.51

spidermanbully Profilo | Newbie

Ciao a tutti,

Ho la seguente query che prende dei dati in base ad una data inserita dall'utente

SELECT [Query Dati_FTRejected].Etichetta, [Query Dati_FTRejected].Giorno
FROM [Query Dati_FTRejected]
WHERE giorno=[immetti data];

Quello che vorrei è scrivere del codice che partendo da due date, una di inizio e l'altra di fine, ripeta la query e scriva di volta in volta il risultao in una tabella. Tipo un ciclo while o qualcosa di simile:

datavar=datainizio

while datavar < data fine

insert into table(....)

SELECT [Query Dati_FTRejected].Etichetta, [Query Dati_FTRejected].Giorno
FROM [Query Dati_FTRejected]
WHERE giorno=datavar;

datavar=datavar+1

wend



grazie in anticipo

SSUPERPIPPO Profilo | Guru

In che linguaggio???

spidermanbully Profilo | Newbie

hai ragione scusa.
il db è in fornato access 2003.

lbenaglia Profilo | Guru

>SELECT [Query Dati_FTRejected].Etichetta, [Query Dati_FTRejected].Giorno
>FROM [Query Dati_FTRejected]
>WHERE giorno=[immetti data];
>
>Quello che vorrei è scrivere del codice che partendo da due date,
>una di inizio e l'altra di fine, ripeta la query e scriva di
>volta in volta il risultao in una tabella. Tipo un ciclo while
>o qualcosa di simile:

Non potresti semplicemente modificare la query avendo preventivamente definito la tabella di destinazione?

INSERT Destinazione SELECT Etichetta, Giorno FROM [Query Dati_FTRejected] WHERE giorno BETWEEN [Data di partenza] AND [Data di fine];

>grazie in anticipo
Prego.

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

spidermanbully Profilo | Newbie

Grazie per il tuo aiuto.
Il db è in access 2003.
Non posso usare between perchè:
nella tabella (ID, Etichetta, Data, Valore, Nome) da cui estraggo i dati c'è il campo ETICHETTA che si può ripetere più volte all'interno dello stesso giorno e devo selezionare quello con ID più basso.
Ora la stessa etichetta può comparire anche il giorno sucessivo, quindi devo ripetere la query per ogni giorno.
é per questo che avevo pensato ad un ciclo while.
Scuami se non sono stato chiaro.

SELECT Min(za.ID) AS ID, za.Etichetta
FROM za
WHERE DATA=[Immetti data]
GROUP BY za.Etichetta, za.DATA;

ciao

lbenaglia Profilo | Guru

>Non posso usare between perchè:
>nella tabella (ID, Etichetta, Data, Valore, Nome) da cui estraggo
>i dati c'è il campo ETICHETTA che si può ripetere più volte all'interno
>dello stesso giorno e devo selezionare quello con ID più basso.
>Ora la stessa etichetta può comparire anche il giorno sucessivo,
>quindi devo ripetere la query per ogni giorno.
Perdonami ma non ho capito.
Allega uno zip con l'.mdb ed in base ai dati contenuti descrivi quale risultato vuoi ottenere prendendo in considerazione un certo intervallo di date.

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