Выбор строки значений на основе самого раннего появления другого поля - PullRequest
0 голосов
/ 02 октября 2018

У меня есть таблица, которая содержит дубликат Плесень №: jodbom.fbompart.Я хочу иметь возможность выбрать строку данных с самым ранним номером задания: jomast.fjobno и номером приоритета: jomast.fschdprior.Таблица должна идти от 7 строк до 4.

http://sqlfiddle.com/#!18/d226e/1/0

    SELECT
    jodbom.fbompart as MoldNo, 
    jomast.fjobno as Job No,
    jomast.frel_dt as DueDate,
    jomast.fschdprior as Priority

    FROM jodbom 
    INNER JOIN jomast ON jodbom.fjobno =  jomast.fjobno
    INNER JOIN jodrtg ON jomast.fjobno = jodrtg.fjobno 
    INNER JOIN inmastx ON jodbom.fbompart = inmastx.fpartno
    LEFT JOIN sorels ON jomast.fsono+jomast.fkey = sorels.fsono+sorels.finumber+sorels.frelease 

    WHERE     (jomast.fstatus = 'RELEASED' OR
                          jomast.fstatus = 'OPEN') AND (jomast.flisapl = 1) AND (jodbom.fltooling = 1) AND 
                          (jodrtg.fpro_id <> '09') 

Order by jomast.frel_dt, jomast.fpriority

1 Ответ

0 голосов
/ 02 октября 2018

Работает ли для вас следующее:

SELECT
    MoldNo
    , [Job No]
    , DueDate
    , Priority
FROM

(
SELECT
    jodbom.fbompart as MoldNo, 
    jomast.fjobno as [Job No],
    jomast.frel_dt as DueDate,
    jomast.fschdprior as Priority,
    ROW_NUMBER() OVER (PARTITION BY jodbom.fbompart ORDER BY jomast.fjobno, jomast.fschdprior) R

    FROM jodbom 
    INNER JOIN jomast ON jodbom.fjobno =  jomast.fjobno
    INNER JOIN jodrtg ON jomast.fjobno = jodrtg.fjobno 
    INNER JOIN inmastx ON jodbom.fbompart = inmastx.fpartno
    LEFT JOIN sorels ON jomast.fsono+jomast.fkey = sorels.fsono+sorels.finumber+sorels.frelease 

    WHERE     (jomast.fstatus = 'RELEASED' OR
                          jomast.fstatus = 'OPEN') AND (jomast.flisapl = 1) AND (jodbom.fltooling = 1) AND 
                          (jodrtg.fpro_id <> '09') 
) Q

WHERE R = 1
Order by DueDate, Priority
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...