Originariamente inviato da valeria75
.............
Ma ancora non capisco come fare l'insert in funzione dei risultati della tua query
..........
??? ...questa domanda non me l'apettavo e mi fa pensare che tu
sia alle prime armi con sql server per cui ti consiglio di aiutarti
con la sua guida in linea che a mio parere è ben fatta;
(nel caso non l'avessi disponibile puoi scaricarla gratuitamente dal sito della microsoft)
La query di cui abbiamo discusso fino ad ora
e realtiva insert devi metterla in una Stored Procedure come segue :
(nella select ho solo commentato i campi da te non richiesti
e che avevo messo sola per facilitare la verifica dei risultati)
codice:
Create Proc dbo.TuaSP
@Art varchar(10), -- articolo
@QtaRic int -- qta richiesta
AS
--set @Art='art1'
--set @QtaRic= 1
--set @QtaRic= 4
--set @QtaRic= 5
--set @QtaRic= 6
Insert into dbo.tabella2(Lotto,QtaDaImpegnare) '<< inserisco i record in tabella2
/* la query */
select --T1.Data,
T1.Lotto,
--T1.QtaProdotta,
--T1.QtaImpegnata,
--(T1.QtaProdotta-T1.QtaImpegnata) as QtaDisponibile,
--dbo.fnProgQtaDisponibile(@Art,T1.Lotto,T1.Data,(T1.QtaProdotta-T1.QtaImpegnata)) as ProgressivoQtaDisponibile,
(case when
dbo.fnProgQtaDisponibile(@Art,T1.Lotto,T1.Data,(T1.QtaProdotta-T1.QtaImpegnata))<=@QtaRic
then
(T1.QtaProdotta-T1.QtaImpegnata)
else
@QtaRic - dbo.fnProgQtaDisponibile(@Art,T1.Lotto,T1.Data,0)
end) as QtaDaImpegnare
from tabLotti T1
etc...etc....
... a te il resto del lavoro e tutte le necessarie verifiche del caso.
P.S.
ti ricordo che questa SP non tiene conto del caso in cui la quantità
richiesta sia 50 e quella disponibile solamente 20;
ovvero in tabella2 ti troverai 20 articoli senza alcun tipo di avviso del problema.