sql-server - 如何从 SQL 组中检索最大值日期
问题描述
任何人都可以向我建议一个我正在与之抗争的 SQL 查询吗?
我有两张桌子:
Table_1:pos_tran
它的架构如下:
pos_tran
(
entry_no CHAR 8 (NOT NULL PK),
barcode CHAR 8,
tran_amt NUMERIC 9,
tran_qty NUMERIC 9,
des CHAR 20
)
表_2:pos_tran_hd
和架构:
pos_tran_hd
(
entry_no CHAR 8 (NOT NULL PK),
Location_id CHAR 3,
entry_date DATETIME8,
)
现在,我想在加入两个表后对条形码进行分组,并在我写这篇文章时从列表中entry_no
检索条目,如果有人更强调我的话max(last date)
SELECT pthd.maxed, pt.barcode, tran_amt, tran_qty from pos_tran pt,
(
SELECT entry_no, max(entry_date) maxed
FROM
pos_tran_hd
where location_id=015 GROUP BY entry_no
)
pthd
WHERE pthd.entry_no=pt.entry_no
ORDER BY barcode,pthd.maxed
但这并没有按我的意愿工作,并且在没有给出最大日期的情况下给了我大约 200,000 条记录,以这种方式:
2014-06-23 00:00:00.000 21155192 28000.000 7.00
2014-07-01 00:00:00.000 21155192 4000.000 1.00
2014-07-08 00:00:00.000 21155192 8000.000 2.00
2014-07-12 00:00:00.000 21155192 12000.000 3.00
2014-08-13 00:00:00.000 21155192 4000.000 1.00
2014-09-16 00:00:00.000 21155192 12000.000 3.00
2014-10-06 00:00:00.000 21155192 12000.000 3.00
2015-01-26 00:00:00.000 21155192 12000.000 3.00
2015-05-29 00:00:00.000 21155192 4000.000 1.00
2018-01-05 00:00:00.000 21155192 28000.000 4.00
但实际上它应该给我最后一条记录,max(entry-date)
数据库最糟糕的部分是我正在处理Ms-SQL 2000
。
如果有人有积极的建议,请帮助我。谢谢你。
解决方案
您的第二个查询选择了一个最大值entry_date
,entry_no
而entry_date
每个entry_no
. 在您的描述中,您在谈论“按条形码分组”......但是当按条形码分组(每个条形码仅显示一行)时,您无法显示每个条目的数量和数量。
所以,让我们从这个开始:
select pt.barcode, max(pthd.entry_date) maxed
from pos_tran pt
inner join pos_tran_hd pthd on pt.entry_no = pthd.entry_no
group by pt.barcode
order by pt.barcode
然后,要显示最后一个entry_date
per的完整行,barcode
并且由于您仍在使用 SQL Server 2000,我们需要一个子查询来计算maxed
per,barcode
就像我之前所做的那样,并将这些值与我们要显示的值进行比较:
SELECT pthd.entry_date maxed, pt.barcode, pt.tran_amt, pt.tran_qty
FROM pos_tran pt
INNER JOIN pos_tran_hd pthd ON pt.entry_no = pthd.entry_no
WHERE EXISTS (
select pt2.barcode
from pos_tran pt2
inner join pos_tran_hd pthd2 on pt2.entry_no = pthd2.entry_no
group by pt2.barcode
having pt2.barcode = pt.barcode AND max(pthd2.entry_date) = pthd.entry_date)
ORDER BY pt.barcode
推荐阅读
- python - 搜索唯一数独(python)时如何实现递归?
- embedded - MBED BLE 有效载荷值
- bash - 如何将 shell 脚本 stdout/stderr 打印到文件/s 和控制台
- github - TeamCity 和 Github 之间的连接超时
- python - 如何在python中将两个列表的每个元素相乘?
- prestashop - 如何在 prestashop 中获取产品的所有类别 ID?(包括子类的子类)
- javascript - 将文件从 s3 下载到本地磁盘
- sql - 返回分组中的计数 0
- r - R - 根据 ID 和日期变量创建新列
- c# - 有条件地添加 IAsyncDisposable?