Kombinieren Sie zwei Tabellen zu einer neuen, sodass ausgewählte Zeilen der anderen ignoriert werden

Ich habe zwei Tabellen mit identischen Spalten. Ich möchte diese beiden Tabellen zu einer dritten zusammenfügen, die alle Zeilen der ersten und der zweiten enthält, die ein Datum haben, das in der ersten Tabelle für denselben Ort nicht vorhanden ist.

Beispiel:

Transaktionen:

date    |location_code| product_code | quantity 
------------+------------------+--------------+----------
2013-01-20 | ABC         | 123          |  -20         
2013-01-23 | ABC         | 123          |  -13.158
2013-02-04 | BCD         | 234          |  -4.063

Transaktionen2:

date    |location_code| product_code | quantity 
------------+------------------+--------------+----------
 2013-01-20 | BDE         | 123          |  -30         
 2013-01-23 | DCF         | 123          |  -2
 2013-02-05 | UXJ         | 234          |  -6

Erwünschtes Ergebnis:

date    |location_code| product_code | quantity 
------------+------------------+--------------+----------
 2013-01-20 | ABC         | 123          |  -20         
 2013-01-23 | ABC         | 123          |  -13.158
 2013-01-23 | DCF         | 123          |  -2
 2013-02-04 | BCD         | 234          |  -4.063
 2013-02-05 | UXJ         | 234          |  -6

Wie würde ich das machen? Ich habe zum Beispiel folgendes versucht:

SELECT date, location_code, product_code, type, quantity, location_type, updated_at
      ,period_start_date, period_end_date
   INTO transactions_combined
   FROM ( SELECT * FROM transactions_kitchen k
          UNION ALL
          SELECT *
            FROM transactions_admin h
            WHERE h.date NOT IN (SELECT k.date FROM k)
        ) AS t;

Dabei wird jedoch nicht berücksichtigt, dass ich die Zeilen einschließen möchte, die das gleiche Datum, aber einen anderen Speicherort haben. Ich habe Postgresql 9.2 im Einsatz.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage