Chcę wykonać następujące czynności, gdy klucze podstawowe są zgodne i jeśli nie ma żadnych wierszy z aktywnymi wpisami "Y". czy to możliwe?JEŚLI NIE ISTNIEJE w oświadczeniu "Połącz"?
Próbowałem to:
-- Merge statement
MERGE INTO table1 AS DST
USING table2 AS SRC
ON (SRC.Code = DST.Code)
--Existing records updated if data changes
WHEN MATCHED
AND IF NOT EXISTS (WHERE active='Y' FROM table1)
THEN
INSERT INTO table1 (colum)
SELECT value
+-------+-------------+--------+
| Code | description | Active |
+-------+-------------+--------+
| AB | just | |
| | something | No |
+-------+-------------+--------+
tylko wtedy, gdy nie istnieje aktywny rekord z tego samego kodeksu, chcę wstawić rekord. Nowa płyta będzie wyglądać następująco
+-------+-------------+--------+
| Code | description | Active |
+-------+-------------+--------+
| AB | something | |
| | else | YES |
+-------+-------------+--------+
mam nadzieję, że czyni go bardziej jasne
EDIT: Nieważne jej nie możliwe, właśnie ten komunikat o błędzie: Działanie typu „INSERT” nie jest dozwolone w klauzuli WHEN MATCHED instrukcji MERGE.
To nie jest jak połączyć prace. Rozważ użycie tradycyjnego IF. – Toby
Dane przykładowych struktur stolików i oczekiwany efekt końcowy byłyby pomocne w zrozumieniu pytania i udzieleniu odpowiedzi. –
Miałem problemy z edytowaniem mojego posta, ale istnieją pewne przykładowe dane teraz – R2D2