我有以下查询必须显示此表:
+-------------+------------+------------+----------+
|WRIN |DESC |TYPE |DATE |
+-------------+------------+------------+----------+
|10000-000-000|BLACK PEPPER|PQL Articles|13/02/2012|
+-------------+------------+------------+----------+
|10000-001-000|SALT |PQL Articles|25/01/2010|
+-------------+------------+------------+----------+
但请改为:
+-------------+------------+------------+----------+
|WRIN |DESC |TYPE |DATE |
+-------------+------------+------------+----------+
|10000-000-000|BLACK PEPPER|PQL Articles|13/02/2012|
+-------------+------------+------------+----------+
|10000-000-000|BLACK PEPPER|PQL Articles|17/08/2010|
+-------------+------------+------------+----------+
|10000-000-000|BLACK PEPPER|PQL Articles|25/01/2010|
+-------------+------------+------------+----------+
|10000-000-000|BLACK PEPPER|NO MARK UP |04/06/2009|
+-------------+------------+------------+----------+
|10000-001-000|SALT |PQL Articles|25/01/2010|
+-------------+------------+------------+----------+
|10000-001-000|SALT |NO MARK UP |15/07/2009|
+-------------+------------+------------+----------+
由于名称和其他非重要列,我简化了查询:
SELECT Format(adfc.[arti-cd-base], "00000") & "-" &
Format(pub_adfc.[arti-cd-sfx], "000") & "-" &
Format(pub_adfc.[adfc-cd-diffco], "000") AS Wrin,
pub_adfc.[adfc-desc] AS Description,
pub_arco.[arco-desc],
Max(pub_arcp.[arcp-dt-act]) AS [MaxVanarcp-dt-act]
FROM (pub_arcp
INNER JOIN pub_arco
ON pub_arcp.[arco-nr] = pub_arco.[arco-nr])
INNER JOIN pub_adfc
ON ( pub_arcp.[adfc-cd-diffco] = pub_adfc.[adfc-cd-diffco] )
AND ( pub_arcp.[arti-cd-base] = pub_adfc.[arti-cd-base] )
AND ( pub_arcp.[arti-cd-sfx] = pub_adfc.[arti-cd-sfx] )
GROUP BY Format(pub_adfc.[arti-cd-base], "00000") & "-" &
Format(pub_adfc.[arti-cd-sfx], "000") & "-" &
Format(pub_adfc.[adfc-cd-diffco], "000"),
pub_adfc.[adfc-desc],
pub_arco.[arco-desc],
pub_arcp.[arcp-dt-act],
pub_adfc.[busi-id]
HAVING (( ( pub_adfc.[busi-id] ) = "lpq" ))
ORDER BY Format(pub_adfc.[arti-cd-base], "00000") & "-" &
Format(pub_adfc.[arti-cd-sfx], "000") & "-" &
Format(pub_adfc.[adfc-cd-diffco], "000"),
pub_arcp.[arcp-dt-act] DESC;
我用TOP 1,Max(arcp-dt-act)尝试了一些东西但到目前为止没有任何作用。
有人知道如何从这个查询中获取第一张表吗?
提前致谢
更新1:
@Daniel B
是,对于最近的日期,WRIN / DESC为1行,因此也属于最近日期的类型。
@PeterRing
是的,完全是这样的。但我仍在想办法如何做到这一点。
现在我只删除了[arcp-dt-act](DATE)的DATE列和GROUP BY和ORDER BY,并在select I used Last(pub_arco。[arco-desc])而不是pub_arco中删除了。 [arco-desc]这似乎只给出了一篇文章和正确的类型(最近日期的类型)
BTW:查询中显示的DATE不重要,WRIN,DESC和TYPE是。我只需要最新的类型,因此我需要最近的日期,但Last()似乎也是这样做的。
更新2:
@Daniel B
如果这是您的意思,那么查询正在Access数据库2010中使用?
答案 0 :(得分:0)
尝试
SELECT DISTINCT ON (WRIN, DESC, TYPE)
*
FROM (
//your query here
) as subq
ORDER BY WRIN, DESC, TYPE, DATE DESC
如果您不需要,可以不使用“类型”。