OK, konkrety. Są dwie tabele, załóżmy Sprzedaz i Koszty:
Sprzedaz:
+---------------+-----------+-----------+------------+
| Numer | Tytuł | Cena | Data |
+---------------+-----------+-----------+------------+
| 9405753489 | LODÓWKA | 36,67 | 2020-06-22 |
| 9405753489 | LODÓWKA | -30,39 | 2020-06-21 |
| 9405753489 | LODÓWKA | -30,39 | 2020-06-20 |
| 9405753489 | LODÓWKA | -30,39 | 2020-06-19 |
+---------------+-----------+-----------+------------+
Koszty:
+---------------+-------+------------+
| Numer | Koszt | Data |
+---------------+-------+------------+
| 9405753489 | 43,77 | 2020-06-23 |
| 9405753489 | 16,24 | 2020-06-22 |
| 9405753489 | 62,28 | 2020-06-21 |
| 9405753489 | 38,05 | 2020-06-20 |
| 9405753489 | 14,85 | 2020-06-19 |
+---------------+-------+------------+
Jak widzicie, w tabeli Koszty znajduje się wiersz z datą 23 czerwca której nie ma w tabeli Sprzedaz. Próbuję uzyskać tabelę będącą wynikiem złączenia tych dwóch tabel w którym sytuacja taka jak powyżej spowoduje wstawienie wiersza z datą 23 czerwca i z nullem w miejscu gdzie nie ma danych, czyli wynik powinien wyglądać tak:
+---------------+-----------+-----------+-------+------------+
| Numer | Tytuł | Cena | Koszt | Data |
+---------------+-----------+-----------+-------+------------+
| 9405753489 | NULL | NULL | 43,77 | 2020-06-23 |
| 9405753489 | LODÓWKA | 36,67 | 16,24 | 2020-06-22 |
| 9405753489 | LODÓWKA | -30,39 | 62,28 | 2020-06-21 |
| 9405753489 | LODÓWKA | -30,39 | 38,05 | 2020-06-20 |
| 9405753489 | LODÓWKA | -30,39 | 14,85 | 2020-06-19 |
+---------------+-----------+-----------+-------+------------+
Wydaje się proste, ale poległem.Złączam tabele po polach Numer i Data, czyli:
SELECT * FROM sprzedaz S
LEFT JOIN koszt K ON S.Numer = K.Numer AND (S.Data = K.Data OR K.Data IS NULL)```
Ale wynikiem jest tabela bez wiersza z 23 czerwca.
Niby banał, a nie mogę ogarnąć :/