[MSSQL] pary produktów kupowane jednocześnie

0

Witam. Pytanie wyglada tak jak w temacie, czyli podac pary produktow, ktore byly kupowane jednoczesnie w ramach tego samego zamowienia. Tzn. ze jesli w 1 zamowieniu byl produkt o ID 11 oraz 22 i w ktoryms tam zamowieniu tez takie produkty sie znalazy to ma zliczac wlasnie ilosc powtorzen takich zamowien. Wyswietlilem nr. zamowienia oraz nr produktu lecz nie wiem teraz jak polaczyc te dwie kolumny ze soba by spelnialy ten warunek. Prosze o pomoc

Select  OD.orderid, P.ProductID
from [Order Details] OD join Products P on
	OD.ProductID = P.ProductID
order by 1 
0
  1. Musisz dodać jeszcze warunek żeby to były różne pary, bo tak jak zrobiłeś poda ci dwa razy więcej ;)
select o1.OrderID, o1.ProductID, o2.ProductID 
from [Order Details] as o1 inner join [Order Details] as o2 on o1.OrderID = o2.OrderID
where o1.ProductID>o2.ProductID
order by o1.OrderID
  1. Zdecyduj sie czy chcesz pary produktów, czy ilość powtórzeń takich par produktów bo to dwie różne kwestie...
    O ile się nigdzie nie machnąłem to:
select count(*)as ilosc, o1.ProductID, o2.ProductID 
from [Order Details] as o1 inner join [Order Details] as o2 on o1.OrderID = o2.OrderID
where o1.ProductID>o2.ProductID
group by o1.ProductID, o2.ProductID
order by ilosc desc
0

O to mi wlasnie chodzilo, dzieki :)

0

A jak napisac to bez uzywania INNER ? I dlaczego wlasciwie trzeba wziac 2 razy ta sama kolume tj. Order Details ?

0

Odwoluje, juz do tego doszedlem. Przepraszam za zasmiecanie.

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