1

Temat: działania na rekordach z dwóch tabel

Czy ktoś może pomóc rozwiązać nastœpujący problem z  zapytaniem?

tabela1
goodid | count_in_emporium
--------+-------------------
      0 |            157.00
      1 |           -170.00
      2 |            -36.00
      3 |            -99.00
      4 |            -10.00
      7 |            -12.00
     12 |              3.00
     13 |            -15.00
     16 |             12.00
(9 rows)
tabela2
goodid | count_remanent 
--------+-------
      1 | 10.00
      7 | 12.00
     13 |  9.00
(3 rows)

Jak zadać pytanie gdzie wynikiem bedzie tabela o dwóch kolumnach:

goodid | count_remanent - count_in_emporium
-------+-----------------------------------
     0 |  157.00
     1 |  180.00
     2 |   36.00
     3 |   99.00
     4 |   10.00
     7 |   24.00
    12 |   -3.00
    13 |   24.00
    16 |  -12.00


w drugiej kolumnie jest wynik odejmowania wartości kolumn z dwóch tabel przy zachowaniu warunku równości pola goodid z tabeli 1 i 2,  ale jeżeli w jednej z tabel nie ma zadanej wartości goodid to pole count_(coś tam dalej) ma wartośc zero

2

Odp: działania na rekordach z dwóch tabel

Nie testowałem, ale powinno zadziałać:

select
    coalesce(e.goodid, r.goodid) as goodid,
    coalesce(r.count_remanent, 0) - coalesce(e.count_in_emporium, 0) as result
from
    tabela1 e
    full outer join
    tabela2 r using (goodid)
--
The best thing about modern society is how easy it is to avoid contact with it.

3

Odp: działania na rekordach z dwóch tabel

wielkie dzięki zadziałało