10. marts 2014 - 13:43Der er
8 kommentarer og 1 løsning
insert into
Hej Jeg har den her select:
SELECT /*COUNT(CLOSE_TIME) AS 'Closed', */ COUNT(OPEN_TIME) AS 'Open', 0 AS 'Closed', DATEPART(Week, CAST(OPEN_TIME AS Date)) AS 'Week', YEAR(CAST(OPEN_TIME AS date)) AS 'year', MONTH(CAST(OPEN_TIME AS date)) AS 'Month', 'Opened' AS 'Status',
CASE WHEN NOT EXISTS ( SELECT * FROM #OpenClosedIncidents WHERE Iyear=YEAR(CAST(OPEN_TIME AS date)) AND Imonth=MONTH(CAST(OPEN_TIME AS date)) AND Iweek=MONTH(CAST(OPEN_TIME AS date)) ) THEN 'insert' ELSE 'update' END AS 'insertorupdate'
FROM .........
I min THEN section vil jeg gerne insætte post i min midlertidigen tabel eller opdaterer den. Men hvordan gør jeg det? Uanset hvad jeg gør, får jeg en syntax error i FROM
Hej buzzzz Kan du lave en skitse over hvordan MERGE vil kunne løse mit problem. Jeg synes det er svært at gennemskue hvordan det skal se ud. Jeg har ikke rettigheder til at lave procedures så det skal være en løsning uden dem.
Jeg kender godt de eksempler du henviser til. Der bruges stored procedures og det har jeg ikke tilladelse til at lave. Merge er sikkert hvad jeg har brug for, men jeg kan ikke finde ud af at lave det så det erstatter det jeg har lavet.
Du skal bruge dette: MERGE Production.UnitMeasure AS target USING (SELECT @UnitMeasureCode, @Name) AS source (UnitMeasureCode, Name) ON (target.UnitMeasureCode = source.UnitMeasureCode) WHEN MATCHED THEN UPDATE SET Name = source.Name WHEN NOT MATCHED THEN INSERT (UnitMeasureCode, Name) VALUES (source.UnitMeasureCode, source.Name) OUTPUT deleted.*, $action, inserted.* INTO #MyTempTable;
Fremgangs måde ( Jeg har ikke kigget på din query, kan ikke lige gennemskue dine casts etc. men det virker rimelig simpelt.
* Altså ... du har 2 tables ( TAGET & SOURCE ) * Dem skal du match på et eller andet. ( ID og/eller andre ting, som navn eller en status column ) * Derefter har du mulighed for 2 ting. ** Matched ... ergo din row findes og du kan dermed lave en UPDATE ** Not Matched ... ergo din row er der ikke og du kan lave en insert.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.