gpt4 book ai didi

sql - 根据销售日期查找产品的历史类别

转载 作者:行者123 更新时间:2023-12-02 03:22:55 26 4
gpt4 key购买 nike

希望有人可以帮助我解决以下问题。基本上,我所有的产品都带线销售。我正在使用此表查找已售出的保修以及保修所附的产品。然后,我尝试根据它所附加的产品类别对其进行分组。

销售线表包含所有保修、附加产品 sku、销售日期时间和保修类别。我正在尝试将其连接到具有产品 sku、类别的有效日期时间以及该生效日期的产品类别的历史类别表。

我无法弄清楚如何准确地进行连接,因此提取的数据是销售日期时间的历史类别。在我查看的时间段内,产品可能会多次更改类别,因此历史表中的同一项目有多个条目。

使用 SQL Server,感谢您的帮助。

这是我目前所拥有的:

SELECT 
a.[Invoice Number]
,a.[SKU]
,a.[Item Category Code]
,a.[Sale Date]
,b.[Effective Date]
,b.[Category Code]
FROM [Sales Invoice Line] a
LEFT JOIN [Item Category Division History] b ON a.[Warranty Item_Resource No_] = b.[Item No_]
WHERE [Sales Date] between '2013-10-01' and '2014-09-30' AND b.[Division Code] is not null

最佳答案

我不完全理解您的表格以及它们之间的关系。但我认为以下会给你这个想法。

假设您有 2 个表 Sales 和 History,如下所示;

销售表

Date | Item | Invoice_number

历史表

Date | Item | Category

你想要一份报告;

Invoice_number | Item | Category

其中 category 是截至销售日期对商品有效的类别,您可以使用以下内容;

Select s.invoice_number, s.Item, h.category
FROM sales s
INNER JOIN history h
ON s.item = h.item
INNER JOIN (
Select MAX(h.date) date, s.invoice_number, s.item
From sales s
Inner Join history h
ON s.item = h.item AND h.date <= s.date
Group By s.invoice_number, s.item
)a on a.date = h.date AND a.item = s.itme AND a.invoice_number = s.invoice_number

内部查询在每次销售前查找类别最后一次更改item日期。然后将其用作 Inner Join 以过滤包含 category 的外部查询。

我们不能在内部查询中包含类别,因为它还需要按类别分组,并且它会为销售日期之前分配给商品的每个类别返回一条记录。

关于sql - 根据销售日期查找产品的历史类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32082330/

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