Sql MS ACCESS:无法检索基于最长日期支付的上次价格
目标Sql MS ACCESS:无法检索基于最长日期支付的上次价格,sql,ms-access,Sql,Ms Access,目标 SELECT [Sales Order Details (F42119)].SDAN8 AS [COMPANY ID], [Sales Order Details (F42119)].SDITM AS [ITEM ID], [Sales Order Details (F42119)].SDAITM AS STYLE, (CCur([SDLPRC])/10000) AS PRICE, Max([Sales Order Details (F42119)].SDDRQJ) AS [LA
SELECT
[Sales Order Details (F42119)].SDAN8 AS [COMPANY ID],
[Sales Order Details (F42119)].SDITM AS [ITEM ID],
[Sales Order Details (F42119)].SDAITM AS STYLE,
(CCur([SDLPRC])/10000) AS PRICE,
Max([Sales Order Details (F42119)].SDDRQJ) AS [LAST SHIP DATE]
INTO [Table - Sales Details]
FROM [Sales Order Details (F42119)]
GROUP BY
[Sales Order Details (F42119)].SDAN8,
[Sales Order Details (F42119)].SDITM,
[Sales Order Details (F42119)].SDAITM,
(CCur([SDLPRC])/10000);
根据项目ID
和最新支付的价格
为公司ID
制定销售目录(基于上次发货日期
)
方法
客户
,销售
,项目
表格客户ID
和项目
运行查询链接表,以了解采购历史记录公司ID
,项目ID
,上次销售价格
,上次发货日期的表格
SELECT
[Sales Order Details (F42119)].SDAN8 AS [COMPANY ID],
[Sales Order Details (F42119)].SDITM AS [ITEM ID],
[Sales Order Details (F42119)].SDAITM AS STYLE,
(CCur([SDLPRC])/10000) AS PRICE,
Max([Sales Order Details (F42119)].SDDRQJ) AS [LAST SHIP DATE]
INTO [Table - Sales Details]
FROM [Sales Order Details (F42119)]
GROUP BY
[Sales Order Details (F42119)].SDAN8,
[Sales Order Details (F42119)].SDITM,
[Sales Order Details (F42119)].SDAITM,
(CCur([SDLPRC])/10000);
问题/问题
客户
A购买的商品
ABC@3个不同日期的3种不同价格。我取了发货日期的Max
,希望显示上次的价格
已支付的(导致价格只有一个值)。然而,由于某种原因,我仍然在三个不同的日期收到三种不同的价格如何让MS Access仅显示基于最新发货日期的最新价格?
注:SDLPRC=“售价”。我必须将SLDPRC转换成一种货币,然后除以1000;这是由于我们当前的数据库设置。另外,
SDAITM
是一个更方便客户使用的“缩写项目编号”。问题在于您正在按价格变量(CCur([SDLPRC])/10000)进行分组。使用groupby
时,Access/SQL将按groupby
语句中的所有变量拆分行。所以你不需要按价格分组
将查询更改为使用子查询,该子查询可查找按[Company ID]
、[Item ID]
和样式
分组的销售的最后日期。用户可以使用外部查询获取该特定记录的价格。比如:
SELECT b.[COMPANY ID], b.[ITEM ID], b.STYLE, b.[LAST SHIP DATE], CCur(a.[SDLPRC])/10000 as PRICE
INTO [Table - Sales Details]
FROM [Sales Order Details (F42119)] as a
INNER JOIN
(SELECT
[Sales Order Details (F42119)].SDAN8 AS [COMPANY ID],
[Sales Order Details (F42119)].SDITM AS [ITEM ID],
[Sales Order Details (F42119)].SDAITM AS STYLE,
Max([Sales Order Details (F42119)].SDDRQJ) AS [LAST SHIP DATE]
FROM [Sales Order Details (F42119)]
GROUP BY
[Sales Order Details (F42119)].SDAN8,
[Sales Order Details (F42119)].SDITM,
[Sales Order Details (F42119)].SDAITM
) as b
ON a.SDAN8 = b.[COMPANY ID]
and a.SDITM = b.[ITEM ID]
and a.SDAITM = b.STYLE
and a.SDDRQJ = b.[LAST SHIP DATE]
谢谢,这证实了我的怀疑