2012-03-19 75 views
0

我怎样才能获得这些线(同线最小运行,它并不总是2):SQL - 选择最小的排

enter image description here

从这个?

enter image description here

这是我的选择:

select SCR.order_number, SCR.product_code, REL.operation, REL.quantity 
from scrDATA as SCR INNER JOIN 
    relBDE as REL ON SCR.order_number = REL.order_number 

我需要算一件为ORDER_NUMBER和产品代码(例如,1500个为order_numberFA36001607和5个为order_numberFP7201127

+0

您正在使用哪个数据库管理系统? – 2012-03-19 14:50:18

+0

Yuck:啊哈,每个表relBDE和scrDATA都有他们的主要ID – gaffcz 2012-03-19 14:54:58

+0

@Yuck - 我不认为你提到的行是相同的。它们之间的product_code是不同的。 – 2012-03-19 14:55:18

回答

1

喜欢的东西:

select SCR.order_number, SCR.product_code, REL.operation, SUM(REL.quantity) 
FROM scrDATA as SCR 
INNER JOIN relBDE as REL ON SCR.order_number = REL.order_number, 
(SELECT SCR2.order_number, MIN(REL2.operation) AS operation 
       FROM scrDATA as SCR2 
       INNER JOIN relBDE as REL2 ON SCR2.order_number = REL2.order_number 
       GROUP BY SCR2.order_number) AS SCR_OP 
WHERE SCR.order_number = SCR_OP.order_number 
    AND SCR.operation = SCR_OP.operation 
GROUP BY SCR.order_number, SCR.product_code, REL.operation 
+0

这就是我需要的,谢谢你:-) – gaffcz 2012-03-19 15:18:30

+0

不客气。 – 2012-03-19 15:19:40

1

似乎像这样会工作:

select SCR.order_number, SCR.product_code, MIN(REL.operation), REL.quantity 
from scrDATA as SCR INNER JOIN 
    relBDE as REL ON SCR.order_number = REL.order_number 
GROUP BY SCR.order_number, SCR.product_code, REL.quantity 
1

认为这是你需要查询:

select SCR.order_number, SCR.product_code, REL.operation, REL.quantity 
from scrDATA as SCR 
INNER JOIN relBDE as REL ON SCR.order_number = REL.order_number 
where REL.operation = 
    (select MIN(REL.operation) 
    from scrDATA as SCR 
    INNER JOIN relBDE as REL ON SCR.order_number = REL.order_number)