Select to insert

mercoledì 25 giugno 2008 - 16.10

trinity Profilo | Guru

Ciao Ragazzi,
io in sql server ho creato la seguente tabella:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

supponiamo che inseriamo i seguenti record:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

come risultato nella tabella avremo la seguente immagine:


912x252 59Kb


allora che succede io devo fare a fine mese diciamo delle chiusure ossia creare una tabella temporanea con cui sullo stesso record mi ricavo sia la data di arrivo che di partenza in base al mese che stabilisco, esempio se vorrei fare la chisura del mese di Maggio ho creato questa stored che mi funziona perfettamente anche se non è bellissima dal punto di vista del codice:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

questa stored mi crea la seguente tabella temp, vedi imamgine:


1127x253 50Kb


il discorso è il seguente quando eseguo questa stored per fare le chiusure potete notare che ci sono dei record che hanno la data di arrivo ma non di partenza perchè probabilmente la loro partenza avverrà nel mese successivo oppure nei mesi successivi, pertanto io per i record che non hanno la data di partenza settata devo riportarli al mese successivo settandoci però come data di arrivo il primo giorno del mese successivo. In questo caso stiamo chiudendo Maggio pertanto i record che non hanno partenza dovranno essere riscritti nella tabella archivio_mov ma con data_elaborazione(dataarrivo) = 01/06/2008 e per distinguerli dai record classici questi riportati hanno il campo Flag_riporto settato ad 1 (mi serve per un discorso di calcolo di arrivi)

per fare questi riporto ho aggiunto alla stored in alto il seguente codice:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

ecco il risultato nell'immagine:


910x333 77Kb



e funziona solo che ho trovato un piccolo ma grave problema, se andate a vedere i record arrivati di Maggio c'è quello della Germania che ha come arrivati 30 componenti il 23/05/2008 ma solo 15 il 24/05/2008.
Pertanto io dovrei riportare come data arrivo al 01/06/2008 un record della Germania con 15 componenti invece con il sistema che io ho fatto non riesco a riportare diciamo al mese successivo il record della Germania in quanto in base all'ultima parte della stored io eseguo una insert to select su record che hanno data_partenza Is Null ma nel caso della germania la partenza c'è ma solo per una parte dei componenti.

Qua mi fermo mi potete aiutare è importantissimo.

grazie
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
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