2015-06-12 4 views
0
TABLE Laptop_Shift_Departments 

    id  Laptop_ID Curr_department Pre_Department 
    -----|----------|-----------------|---------------- 
    9  71   4     3 
    10  68   4     3 
    11  71   5     4 
    12  68   5     4 

Пользователь только поиск PO Номер и против этого PO_Num есть 2 ноутбука (Laptop_ID)Fetch Максимальное значение

Выше мой стол теперь я хочу, чтобы получить значение MAX Против этого laptop_ID ID

У меня есть попытался это:

SELECT LD.ID AS Laptop_ID,ld.GulfITBarcode,po.ID as PO_ID,PO.PO_Number as PO_Number,D.Department, 
    D.ID as Crr_DepID1,d2.Department,D2.ID as Pre_DepID2 
    FROM PO_PURCHASEORDER PO 
     INNER JOIN PO_Laptop_Master LM 
     ON LM.PO_ID = PO.ID 
     INNER JOIN PO_LaptopDetail LD 
     ON LD.LapTop_Master_ID = LM.ID 
     INNER JOIN Laptop_Shift_Departments DP 
     ON DP.Laptop_Detail_ID = LD.ID 
     inner join Laptop_Departments d 
     on d.ID = DP.Current_Dep_ID 
     inner join Laptop_Departments d2 
     on d2.ID = DP.Previous_Dep_ID 
     WHERE PO_NUMBER = '5258' 
     AND 
     LD.ID IN (select Max(cSh.id) from Laptop_Shift_Departments cSh) 

Но он не работает

МОЙ выход должен быть такой:

id  Laptop_ID Curr_department Pre_Department 
-----|----------|-----------------|---------------- 
11  71   5     4 
12  68   5     4 
+1

Ваш список выбора не соответствует результату установить столбцы ... – jarlh

ответ

0

Вы хотите использовать «Group By» функции в конце поля, которые вы хотите группе и функции «Макс» в Select на колоннах вы хотите «Макс» (или 'Min' или 'Avg'). Должно выглядеть примерно так:

SELECT 
    LD.ID AS Laptop_ID 
    ,ld.GulfITBarcode 
    ,po.ID as PO_ID 
    ,PO.PO_Number as PO_Number 
    ,D.Department 
    ,MAX(D.ID) as Crr_DepID1 
    ,d2.Department 
    ,MAX(D2.ID) as Pre_DepID2 
FROM PO_PURCHASEORDER PO 
    INNER JOIN PO_Laptop_Master LM 
     ON LM.PO_ID = PO.ID 
    INNER JOIN PO_LaptopDetail LD 
     ON LD.LapTop_Master_ID = LM.ID 
    INNER JOIN Laptop_Shift_Departments DP 
     ON DP.Laptop_Detail_ID = LD.ID 
    inner join Laptop_Departments d 
     on d.ID = DP.Current_Dep_ID 
    inner join Laptop_Departments d2 
     on d2.ID = DP.Previous_Dep_ID 
WHERE PO_NUMBER = '5258' 
    AND LD.ID IN (select Max(cSh.id) from Laptop_Shift_Departments cSh) 
    AND DP.Current_Dep_ID = 5 
GROUP BY 
    LD.ID 
    ,ld.GulfITBarcode 
    ,po.ID 
    ,PO.PO_Number 
    ,D.Department 
    ,d2.Department 

(.., Не видев структуру таблицы я не уверен, как в остальной части запроса Надеюсь, что это помогает)

Смежные вопросы