gpt4 book ai didi

mysql - 根据另一个表中的日期范围选择所有可用的最新非空记录

转载 作者:行者123 更新时间:2023-11-29 23:41:45 24 4
gpt4 key购买 nike

继这个问题之后SELECT all the newest record distinct keyword with a non null value in one column

我现在有一个问题,我的数据在哪里

PRODUCT:
id| product | amount| ownershipid
1 | ipod | 200 | 2
2 | ipod | 250 | 3
3 | ipod | 150 | 4
4 | apple | 100 | 1
5 | apple | 98 | 2
6 | apple | 500 | 3
7 | itunes | NULL | 1
8 | itunes | 50 | 2
9 | itunes | NULL | 3
10 | itunes | NULL | 4

OWNERSHIP:
ownershipid| start | end
1 | 2011-01-01 | 2011-12-31
2 | 2012-01-01 | 2012-12-31
3 | 2014-01-01 | 2014-12-31
4 | 2013-01-01 | 2013-12-31

我需要每种产品的最新可用金额。我无法根据 OwnershipId 进行排序,因为最新数据来自 2014 年,而不是 2013 年。OwnershipId 是自动增量,我们接受历史数据。

所以,我的结果应该返回第 2、6 和 8 行。

最佳答案

假设最近的数据是由 end 定义的,您可以进行一些复杂的连接来获取结果;

SELECT p.product, p.amount
FROM product p JOIN ownership o ON p.ownershipid = o.ownershipid
JOIN (
SELECT p.product, MAX(o.end) end
FROM product p JOIN ownership o ON p.ownershipid = o.ownershipid
WHERE p.amount IS NOT NULL GROUP BY p.product) z
ON p.product = z.product AND o.end = z.end;

An SQLfiddle to test with .

内部查询获取每个项目具有非空金额的最大日期。

外部查询获取该时间/产品的金额。

关于mysql - 根据另一个表中的日期范围选择所有可用的最新非空记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26125887/

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