Combine dos tablas en una nueva para que las filas seleccionadas de la otra se ignoren
Tengo dos tablas que tienen columnas idénticas. Me gustaría unir estas dos tablas en una tercera que contiene todas las filas de la primera y de la segunda todas las filas que tienen una fecha que no existe en la primera tabla para la misma ubicación.
Ejemplo:
actas:
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
transacciones2:
date |location_code| product_code | quantity
------------+------------------+--------------+----------
2013-01-20 | BDE | 123 | -30
2013-01-23 | DCF | 123 | -2
2013-02-05 | UXJ | 234 | -6
Resultado deseado:
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
¿Cómo voy a hacer esto? Intenté por ejemplo esto:
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;
pero eso no tiene en cuenta que me gustaría incluir las filas que tienen la misma fecha, pero una ubicación diferente. Tengo Postgresql 9.2 en uso.