【问题标题】:MySQL join with max date where clauseMySQL join with max date where 子句
【发布时间】:2018-02-25 13:48:34
【问题描述】:

希望有人可以帮助我... 我有 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 的数据是 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) 来获取数据最新数据,但我不知道如何实现它。

【问题讨论】:

  • 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.. GROUP BY p.pinjid 是无效的 SQL 查询。并且将导致分组的 p.pinjid psce.com/en/blog/2012/05/15/… 的不相关选定数据不正确

标签: mysql sql join


【解决方案1】:

您可以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
                  );

【讨论】:

  • @user1991131 。 . .你不接受这个答案有什么原因吗?
  • 抱歉,我只是仔细检查了我的明细表内容,这是我的错误。
猜你喜欢
  • 2010-11-16
  • 2021-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-31
相关资源
最近更新 更多