[英]Group by sku, max date SQL
I know this is asked quite a bit here, and I have tried to use other examples to incorporate into my own, but I can't seem to make this work. 我知道这里有很多问题,我试图用其他例子加入到我自己的例子中,但我似乎无法做到这一点。
I have columns for sku, date, and cost, and I want to view all 3 columns, but only by max date, grouped by sku. 我有sku,日期和成本的列,我想查看所有3列,但只有最大日期,按sku分组。 Currently:
目前:
Sku Date Cost
1 06/24/15 .01
1 02/22/14 .02
2 06/24/15 .04
2 02/22/14 .05
Need: 需要:
Sku Date Cost
1 06/24/15 .01
2 06/24/15 .04
This is what my SQL looks like: 这就是我的SQL的样子:
SELECT dbo_SKU.PROD_CODE AS Sku, dbo_LOTS.REC_DATE AS [Last Date],
dbo_LOT_ITEM.COST AS Cost
FROM (dbo_LOTS INNER JOIN dbo_SKU ON dbo_LOTS.SKU_ID = dbo_SKU.SKU_ID)
INNER JOIN dbo_LOT_ITEM ON dbo_LOTS.LOT_ID = dbo_LOT_ITEM.LOT_ID;
Here is what the design view looks like (I'm more of a visual person): Design View 以下是设计视图的样子(我更像是一个视觉人物): 设计视图
This is week 2 of teaching myself how to operate Access and how it all works, so if we could break this down in crayon on how I make this work correctly, that would be great. 这是第2周教我自己如何操作Access以及它是如何工作的,所以如果我们能用蜡笔打破这个问题,我将如何正确地完成这项工作,那就太棒了。
You can add additional logic to get the last date. 您可以添加其他逻辑以获取最后一个日期。 One method is to add a correlated subquery in the
WHERE
clause: 一种方法是在
WHERE
子句中添加相关子查询:
SELECT s.PROD_CODE AS Sku, l.REC_DATE AS [Last Date], li.COST AS Cost
FROM (dbo_LOTS as l INNER JOIN
dbo_SKU as si
ON l.SKU_ID = s.SKU_ID
) INNER JOIN
dbo_LOT_ITEM as li
ON l.LOT_ID = li.LOT_ID
WHERE l.REC_DATE = (SELECT MAX(l2.REC_DATE)
FROM dbo_LOTS as l2
WHERE l2.SKU_ID = l.SKU_ID
);
This worked: 这有效:
SELECT dbo_SKU.PROD_CODE AS Sku, dbo_LOTS.REC_DATE AS [Last Date], dbo_LOTS.COSTPERSKU AS Cost
FROM dbo_LOTS INNER JOIN dbo_SKU ON dbo_LOTS.SKU_ID = dbo_SKU.SKU_ID
WHERE (((dbo_LOTS.REC_DATE)=(SELECT MAX(l2.REC_DATE)
FROM dbo_LOTS as l2 WHERE l2.SKU_ID = dbo_LOTS.SKU_ID)));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.