[SQL] warunkowe złączenie tabel

0

Cześć, sytuacja jest taka, że potrzebuję selecta z dwóch tabel, z tym, że raz z jednej, raz z drugiej.

Załóżmy, że mam 4 tabele: FAKTURY, POS, TOWARY i USLUGI

Kazda oczywiscie(oprocz POS) ma pole ID.
Tabela pos wygląda tak:
ID_FAK - id faktury
Czy_usl - czy usługa, czy towar(1 lub 0)
ID_UT - ID towaru bądź usługi
ILOSC - jeśli usluga to null, jeśli towar to jakaś liczba

Ta tabela jest jakby tabelą pomocniczo - łączącą faktury z towarami i usługami.
Jedyne, co mam, to ID faktury, której ma się tyczyć zapytanie. Chodzi o to, że w rezultacie będzie kilka rekordów z tabeli towary i kilka z tabeli usługi(mają takie same pola, poza jednym - towary mają jedno pole więcej).

Nie mogę sobie z tym poradzić, kombinowałem coś z casem, ale oczywiście to był zły pomysł...

0

Skoro TOWARY i USLUGI maja takie same pola to czemu nie zrobić z nich jednej tabeli?

0

poprawnie było by połączyć obie te tabele w jedną i identyfikator (towar | usługa) dać w tej tabeli

jeśli nie chcesz tego zrobić to jedyne rozwiązanie jakie widzę to napisać procedurę, która zwróci Ci wszystkie towary a potem wszystkie usługi bo rozumiem, że problem masz żeby zwrócić takie cuś:

towar1, opis tow1, ...
towar2, opis tow2, ...
towar3, opis tow3, ...
towar1, opis tow1, ...
towar3, opis tow2, ...

(jako pozycje faktury)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0