2009-09-11 61 views
0

如何從下面的查詢中獲得每個產品的最高記錄1?與SQL Server中的表連接時的記錄不同

SELECT DISTINCT o.product, o.orderID, od.qty, od.amount FROM 
    orders o, orderdetails od WHERE o.orderID=od.orderID 


Product OrderID Qty Amount 
Pen  11222 10  100.00 
Pen  11223  5  50.00 
Pen  11224  1  10.00 
Book  22222  1  12.00 
Book  2223  5  10.00 
Scale  1111  2  9.00 
Scale  2222  1  2.00 
+0

前1條記錄是什麼意思?您是否想要訂單的產品清單? – Bob 2009-09-11 19:13:34

+0

我認爲他想要每個產品的「頂級」之一。我認爲。 – 2009-09-11 19:14:55

+0

你是對的喬治。我想要每個產品中最重要的一個 – acadia 2009-09-11 19:24:27

回答

1
SELECT 
    o.Product, MAX(od.QTy) 
FROM 
    orders o 
    INNER JOIN orderdetails od ON o.orderID=od.orderID 
GROUP BY o.Product 

SELECT 
    o.Product, MAX(od.Amount) 
FROM 
    orders o 
    INNER JOIN orderdetails od ON o.orderID=od.orderID 
GROUP BY o.Product 

取決於你認爲什麼是 「頂級」 產品。

0

頂部基於什麼?最多數量?如果是的話試試這個

Select * From Orders O 
    Where OrderId = 
    (Select Max(orderId) From Orders 
     Where product = P.product 
     And Qty = (Select Max(Qty) 
        From orders 
        Where Product = O.Product)) 

否則,如果頂部意味着別的變化最後三行找到訂單ID爲滿足任何的「頂」

0

該定義給這個一杆記錄...

Select o.product, o.orderID, od.qty, od.amount 
from orders o, orderdetails od 
where o.orderID = od.orderID 
    and o.orderID in (Select Min(o.orderId) 
        From orders o 
        Group By o.product)