W dniu 2014-02-22 21:58, Sylwek pisze:
Witam, Chciałem rozwiązać następujący problem z zapytaniem sql:
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, ale jeżeli w jednej z tabel nie ma zadanej wartości goodid to pole count****** ma wartośc zero ilość rekordów w tabelach może być różna. Czasami więcej rekordów będzie w tabeli 1 czasami w tabeli 2.
Tak na szybko, pewnie z błędem bo nie sprawdzalem tego
SELECT goodid, count_remanent - count_in_emporium FROM tables1 t1 LEFT JOIN tables2 t2 ON t1.goodid = t2.goodid