SQL - выберите минимальную строку - PullRequest
0 голосов
/ 19 марта 2012

Как я могу получить эти строки (те же строки с минимальной операцией, и это не всегда 2):

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 и product_code (например, 1500 штук для order_number FA36001607 и 5 штук для order_number FP7201127)

Ответы [ 3 ]

1 голос
/ 19 марта 2012

I думаю это запрос, который вам нужен:

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)
1 голос
/ 19 марта 2012

Что-то вроде:

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
1 голос
/ 19 марта 2012

Похоже, это будет работать:

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
...