Hej! Ungefär så här borde det bli : >1000-tackHjälp med en SQL sats?
Jag erkänner direkt, jag är en riktig sopa på SQL. JAg behöver hjälp
Kan någon vänlig själ försöka få ut den info jag söker?
Jag har två tabeller (något nedkortade:)
Order
ID
NamnAdress
OrderItems
ID
OrderId
ProduktID
OrderedQty
Jag måste få fram en lista på de 5 populäraste produkterna som man OCKSÅ köpt för ett visst ProduktID
Tex
Jag köper ProduktId 123 före mig har andra köpt samma produkt Dessutom har de som köpt denna vara också köpt ProduktID 456 och 789.
Någon som har lust att visa var skåpet skall stå? jag blir evigt tacksam.
Mvh
NiklasSv: Hjälp med en SQL sats?
CREATE PROCEDURE GetPopularProducts
@ProductID int
AS
SELECT TOP 10 DISTINCT OrderItems.ProductID, COUNT(OrderItems.ProductID) FROM Order
LEFT JOIN OrderItems ON OrderItems.OrderID=Order.ID
WHERE OrderItems.ProductID<>@ProductID AND OrderID IN
(SELECT DISTINCT OrderID FROM OrderItems WHERE ProductID=@ProductID)
GROUP BY OrderItems.ProductID
ORDER BY COUNT(OrderItems.ProductID) DESC
Den inre sql-satsen hämtar alla ordernummer där det valda productid:t ingår :
(SELECT DISTINCT OrderID FROM OrderItems WHERE ProductID=@ProductID)
Sedan hämtar hämtar man alla OrderItems bland dessa ordrar (förutom de som berör produkten man söker på) och räknar antalet förekomster av dessa med COUNT. Sortera dem korrekt och använd TOP för att plocka ut de 10 mest populära...
Nedskrivet från huvudet så det är säkert inte 100 % korrekt, men kanske en bit på vägen...
Sv:Hjälp med en SQL sats?
Du fick mig definitivt på rätt spår. Det var den innre jag inte lyckades klura ut. Nu får jag nog läsa på lite bättre ;)
Återigen tack
mvh
NickeL