>Io vorrei creare una procedura che salvi le fasi in un'agenda del tipo
>dovrei inserire quella fase nella tabella Agenda, facendo attenzione
>al fatto che ad una fase potrebbero associati due collaboratori,
>quindi in questo caso dovrei trovare X righe (per gli X collaboratori
>che sono associati ad ogni specifica fase)
>
>Io mi perdo con quest'ultima operazione di duplicazione dell'insert
>in funzione del numero di collaboratori
Ho creato qualche insert e ho fatto una insert direttamente da una select con una join.
Prova a dare un'occhiata all'esempio:
INSERT INTO dbo.FasiCollaboratori (IDProgettoFase,IDCollaboratore)
VALUES (1, 1)
INSERT INTO dbo.FasiCollaboratori (IDProgettoFase,IDCollaboratore)
VALUES (1, 2)
INSERT INTO dbo.FasiCollaboratori (IDProgettoFase,IDCollaboratore)
VALUES (2, 5)
INSERT INTO dbo.FasiCollaboratori (IDProgettoFase,IDCollaboratore)
VALUES (2, 7)
INSERT INTO dbo.FasiCollaboratori (IDProgettoFase,IDCollaboratore)
VALUES (3, 1)
GO
INSERT INTO dbo.Fasi (IDProgetto, DataDa, Cal, CalOK, DataA)
VALUES (1, '20080123', 1, 0, '20080124')
INSERT INTO dbo.Fasi (IDProgetto, DataDa, Cal, CalOK, DataA)
VALUES (2, '20080125', 1, 0, '20080128')
INSERT INTO dbo.Fasi (IDProgetto, DataDa, Cal, CalOK, DataA)
VALUES (2, '20080127', 1, 1, '20080129')
GO
INSERT INTO dbo.Agenda(IDCollaboratore, startDate, endDate, IDProgettoFase)
SELECT
C.IDCollaboratore
, F.DataDa
, F.DataA
, F.IDProgettoFase
FROM
dbo.FasiCollaboratori C
JOIN dbo.Fasi F ON F.IDProgettoFase = C.IDProgettoFase
WHERE
F.Cal = 1
AND F.CalOK = 0
SELECT * FROM dbo.Agenda
/*
IDAgenda IDCollaboratore startDate endDate IDProgettoFase
----------- --------------- ----------------------- ----------------------- --------------
1 1 2008-01-23 00:00:00.000 2008-01-24 00:00:00.000 1
2 2 2008-01-23 00:00:00.000 2008-01-24 00:00:00.000 1
3 5 2008-01-25 00:00:00.000 2008-01-28 00:00:00.000 2
4 7 2008-01-25 00:00:00.000 2008-01-28 00:00:00.000 2
*/
come puoi vedere i record inseriti sono quelli risultanti dalla join, esclusi quelli che non rispettano la condizione di Where.
>
>Grazie per l'aiuto
di nulla!
Alx81 =)
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org