2015-07-12 52 views
0

請問有人能幫助我。我不知道是什麼毛病查詢我認爲這是是正確的..我如何獲得唯一ID和MAX(日期)?

項目表 item

貸款表
loan

當戶表
pawner

Loan_assignment表 loan_assignment

這是我得到的唯一的ID和MAX(日期)

SELECT distinct p.pawner_id, c.item_name, c.description, l.net_proceeds, 
max(DATE_FORMAT(a.date_loan_granted, '%d-%b-%Y')) as date 
from pawner p, loan l, collateral c, loan_assignment a, pawnshop b 
WHERE b.pawnshop_id = a.pawnshop_id AND p.pawner_id = a.pawner_id 
AND l.loan_id = a.loan_id AND a.item_id = c.item_id 
AND b.pawnshop_id = 1 group by p.pawner_id; 

上述^查詢結果查詢是這樣的: enter image description here

,我想發生的結果是這樣的下面 enter image description here

+0

開始通過所以它使用適當的明確的'join'語法固定查詢。 –

+0

從loan_assignment中選擇p.pawner_id,c.item_id,c.description,l.net_proceeds, date_format(max(a.date_loan_granted),'%d-%b-%Y') left join pawner p上p.pawner_id = a.pawner_id 左加入抵押品C於c.item_id = a.item_id 留在加入貸款升l.loan_id = a.loan_id和l.net_proceeds(在(從貸款組net_proceeds)選擇米 通過loan_id)group by p.pawner_id; – soyan

+0

@GordonLinoff仍然是淨數量的輸出是錯誤的idont知道爲什麼? – soyan

回答

1

試試這個:

SELECT distinct p.pawner_id, c.item_name, c.description, l.net_proceeds, 
DATE_FORMAT(MAX(a.date_loan_granted), '%d-%b-%Y') as date 
from pawner p, loan l, collateral c, loan_assignment a, pawnshop b 
WHERE b.pawnshop_id = a.pawnshop_id AND p.pawner_id = a.pawner_id 
AND l.loan_id = a.loan_id AND a.item_id = c.item_id 
AND b.pawnshop_id = 1 group by p.pawner_id; 
+0

感謝它的工作..我如何獲得更新的淨額? ..我今天學到了一些東西..「最大功能必須在date_format裏面..」 – soyan

2

根據意見,如果你想爲每個pawner_id最高date_loan_granted價值,而不是每個(pawner_id,ITEM_ID)你可能反而想:

select m.pawner_id, 
     i.item_name, 
     i.description, 
     l.net_amount, 
     date_format(m.date_loan_granted, '%d-%b-%Y') as date_loan_granted 
    from (select pawner_id, 
       max(loan_id) as loan_id, 
       max(date_loan_granted) as date_loan_granted 
      from loan_assignment 
     group by pawner_id) m 
    join loan_assignment la 
    on m.pawner_id = la.pawner_id 
    and m.loan_id = la.loan_id 
    and m.date_loan_granted = l.date_loan_granted 
    join loan l 
    on m.loan_id = l.loan_id 
    join item i 
    on la.item_id = i.item_id 
+0

我已經執行了你的查詢,但是它表明它有更多的數據。我只想獲取最大日期和最小淨額,並將它們按pawner_id分組..感謝您的幫助 – soyan

+0

上述查詢應提供您實際發佈的樣本數據的預期輸出。它顯示了與爲每個人和物品授予的最新貸款相關的信息。也許你想要每個人的最高日期,而不是每個(pawner,物品)組合。儘管如此,但當你說「最低淨額」時我不明白。最新日期的淨額可能不是最低淨額。 –