gpt4 book ai didi

mysql - Knex NodeJS 如何选择每行具有最大日期的行

转载 作者:行者123 更新时间:2023-11-29 15:21:33 25 4
gpt4 key购买 nike

我正在 NodeJS 中使用 knex。我的问题是,当每一行都有最大日期时,我完全不知道如何选择所有行。

我使用该代码:

 .from('liczniki')
.join('klienci', 'liczniki.klienci_idcustomers', '=', 'klienci.idcustomers')
.join('odczyty', 'odczyty.liczniki_idliczniki', '=','liczniki.idliczniki' )
.select('liczniki.numer_licznika', 'odczyty.wartosc')
.where('klienci.idcustomers', '=', idkl)


.then((result) => {
if (!result) {
console.log(result);
var er = 500;
return er;
}
var pass = result;
console.log(pass)
return pass;
})

};

我有结果:

     TextRow { numer_licznika: '1234567', wartosc: 10124 },
TextRow { numer_licznika: '1234567', wartosc: 320820 },
TextRow { numer_licznika: '1234567', wartosc: 350430 },
TextRow { numer_licznika: '1234567', wartosc: 302202 },
TextRow { numer_licznika: '1212121', wartosc: 220004 },
TextRow { numer_licznika: '1212121', wartosc: 200202 },
TextRow { numer_licznika: '1212121', wartosc: 9005090 },
TextRow { numer_licznika: '1212121', wartosc: 33020 } ]

当日期最晚时,我必须只选择它们。我希望看起来像这样:

  TextRow { numer_licznika: '1234567', wartosc: 10124 },  
TextRow { numer_licznika: '1212121', wartosc: 33020 }

最佳答案

您需要过滤要加入的行。我会将其编写为子查询。像这样的事情:

 .from('liczniki')
.join('klienci', 'liczniki.klienci_idcustomers', '=', 'klienci.idcustomers')
.select(
'liczniki.numer_licznika',
knex('odczyty')
.where('liczniki_idliczniki', knex.ref('liczniki.idliczniki'))
.select(knex.raw('max(??)', ['wartosc']))
.as('wartosc')
)
.where('klienci.idcustomers', '=', idkl)

https://runkit.com/embed/q4dgylmnp69e

关于mysql - Knex NodeJS 如何选择每行具有最大日期的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59349251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com