如果在该ID上有多个状态时,我在如何获取就绪状态方面遇到了麻烦。
我的数据库:
ProjID | Status
1 Ready
2 Done
1 Ongoing
3 Done
2 Ongoing
1 Done
预期产出:
ProjID | Status
1 Ready
2 Ongoing
3 Done
当存在Ready状态时,ProjID Ready应该出现,但是当没有就绪状态时会出现持续状态,但是当没有正在进行状态时,将出现Done状态...订单已准备就绪,正在进行,已完成< / p>
我试过这个
SELECT DISTINCT (projectID),Status FROM projStatus
GROUP BY projectID
ORDER BY FIELD(Status, 'Ready','Ongoing','Done' )
答案 0 :(得分:0)
此查询提供预期输出:
SELECT projectID, max( Status ) Status
FROM projStatus
GROUP BY projectID
演示 - &gt; http://www.sqlfiddle.com/#!2/cdc1d8/4
答案 1 :(得分:0)
根据我的评论,这里是嵌套查询:
SELECT projectID, Status
FROM (
SELECT DISTINCT (projectID),Status
FROM projStatus
GROUP BY projectID
) AS t
ORDER BY CASE Status
WHEN 'Ready' THEN 1
WHEN 'Ongoing' THEN 2
WHEN 'Done' THEN 3
END