MySQL加入max date where子句

时间:2018-02-25 13:48:35

标签: mysql sql join

希望有人可以帮助我...... 我有2个表,其中包含pinjid列的详细信息作为核心,

表1:pinjaman



pinjid   nilai  jasa
1        100    10
2        200    20
3        400    40
4        500    50




表2:transaksi_detail



id  pinjid   tanggal        pokok  t_jasa
1   1        2018-02-01  100    10    
2   2        2018-02-05  100    10    
3   1        2018-02-11  30     3  
4   3        2018-02-18  200    20  
5   3        2018-02-20  60     6  
6   2        2018-02-21  70     7  




我需要合并两个表或创建一个视图来显示以下数据。



pinjid   nilai  jasa    pokok     t_jasa
1        100    10      30        3      
2        200    20      70        7
3        400    40      60        6
3        500    50      0         0




来自transaki_detail的数据teken是pinjid的最新日期和组。 通过以下查询,transaksi_detail表中的数据不是最新的日期。



SELECT p.pinjid AS pinjid,
  p.anggota AS anggota,
  p.nilai_pinjam AS nilai_pinjam,
  p.nilai_jasa AS nilai_jasa,
  t.pokok AS pokok,
  t.jasa AS jasa,
  t.denda AS denda
FROM (pinjaman p
  CROSS JOIN transaksi_detail t)
GROUP BY p.pinjid




我知道我可能需要在where子句中使用max(tanggal)来获取数据的最新数据,但我不知道如何实现它。

1 个答案:

答案 0 :(得分:0)

您将join表格,然后过滤以获取最新日期。这是一种方法:

SELECT p.pinjid AS pinjid, p.anggota AS anggota, p.nilai_pinjam AS nilai_pinjam, p.nilai_jasa AS nilai_jasa,
       t.pokok AS pokok, t.jasa AS jasa, t.denda AS denda
FROM pinjaman p JOIN
     transaksi_detail t
     ON p.pinjid = t.pinjid
WHERE t.tanggal = (SELECT MAX(t2.tanggal)
                   FROM transaksi_detail t2
                   WHERE t2.pinjid = t.pinjid
                  );
相关问题