Łączenie danych w SQL łączenie pozycji dat

0

Jedna tabela A zawiera wszystkie dane dotyczące nagłówków dokumentów programu handlowego: numer_dokumentu. Data, kontrahent. Typ dokumentu
Druga tabela B zawiera elementy składowe dokumentów - nazwe_towaru

Połączyłam tabele przez inner join i posortowalam według nazwy_towaru:

Select numer_dokumentu, Data, nazwa_towaru, typ_dokumentu from A inner join B on kluczA=kluczB
Order by nazwa towaru

Dało to tyle, że pozycje znajdują się jedna pod druga :

Towar 1.data zakupu. Numer dokumentu
Towar 1.data sprzedaży. Numer dokumentu
Towar 2.data zakupu. Numer dokumentu
Towar 2.data sprzedaży. Numer dokumentu

Itd.

Jak zrobić żeby po połączeniu tabel efet był następujący? - wszystkie dane dotyczące jednego towaru mieściły się w jednym rekordzie :

Towar 1. Data zakupu. Numer dokumentu. Data sprzedaży. Numer dokumentu sprzedaży
Towar 2. Data zakupu. Numer dokumentu. Data sprzedaży. Numer dokumentu sprzedaży

3

A jak bedzie kilka dat sprzedaży, albo będzie tylko zakup bez sprzedaży?

0

Niezależnie od ilości dat. Najlepiej aby wszystko znajdowało się w jednym rekordzie

1
Select distinct a.nazwa_towaru, a.Data_zakupu, b.Numer_dokumentu, b.Data_sprzedaży, b.Numer_dokumentu_sprzedaży
  from A as a inner join B as b on a.kluczA=b.kluczB
Order by a.nazwa towaru
1

@woolfik ale to nie da OP 1 rekordu per towar - jesli ma wiecej zakupow/sprzedazy. Dla tego o to pytał @Panczo. Generalnie ten pomysł o któy prosi OP wydaje się bardzo zły. Wydaje się, że tu tylko jakiś PIVOT to załatwi. Pytanie brzmi "po co" :| (wonder)

1

Pytacz nigdzie nie pisał, że ma być tylko 1 rekord tylko, że w jednym rekordzie ma być informacja z obu tabel. Stąd też distinct doskonale sobie zdaję sprawę, że przy relacji 1 do wielu będzie n rekordów ale nieprecyzyjne pytanie to i odpowiedź możliwe najogólniejsza

0

Właściwie napisała tu:

Kasia77 napisał(a):

Niezależnie od ilości dat. Najlepiej aby wszystko znajdowało się w jednym rekordzie

Ale rozumiem co masz na myśli.

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