下午好,
我正在尝试构建一个简单的库存系统,我希望我能够查询能够为每个产品(组件;参考)选择最后一个条目,并且也为每个产品选择最后一个条目(用于比较)。
这是我到目前为止:
到目前为止,我的查询是:
SELECT u1.*
FROM $usertable u1
JOIN (
SELECT component, ref, MAX(date) date
FROM $usertable
GROUP BY component, ref
) u2
USING(component, ref, date) ORDER BY component ASC, ref ASC
你能帮我解决一下这个问题吗?
答案 0 :(得分:1)
您可以使用where子句
中的子查询来执行此操作SELECT u1.*
FROM $usertable u1
WHERE (
SELECT COUNT(*)
FROM $usertable u2
WHERE u2.component= u1.component
AND u2.ref= u1.ref
AND u2.date>= u1.date
) <= 2
ORDER BY component ASC, ref ASC
答案 1 :(得分:0)
它应该工作。 http://www.sqlfiddle.com/#!2/288980/1
您可以尝试指定Join
条件。
SELECT u1.*
FROM $usertable u1
JOIN (
SELECT component, ref, MAX(date) date
FROM $usertable
GROUP BY component, ref
) u2
on u2.component = u1.component
and u2.ref = u1.ref
and u2.date = u1.date
ORDER BY component ASC, ref ASC