我努力让这个SELECT
工作没有成功。子选择工作正常,但我也需要用case语句对结果进行排序,我不知道是否可以这样做。
SELECT *
FROM (SELECT DISTINCT TYPE, MAX(DATE) FROM TABLE1 WHERE USER = '61616161N' GROUP BY TYPE
ORDER BY MAX(DATE) DESC, TYPE)
GROUP BY STATUS
ORDER BY
CASE
WHEN STATUS = 'REC' THEN 1
WHEN STATUS = 'LEI' THEN 2
END
我不知道我是否足够具体,如果我能在一个像这样的选择中做到这样会很好...如果可以这样做也可以解决方法。
答案 0 :(得分:1)
您不从内部SELECT返回STATUS列,因此您无法在GROUP BY或ORDER BY子句中使用它。 使内部查询返回STATUS列是解决方案。
答案 1 :(得分:0)
不确定你想要什么,但下面会运行 - 这是你想要的吗?
SELECT ..., (variables from other tables)
newtable.date
FROM ..., (other database tables)
newtable
WHERE ..., (whole bunch of table links)
AND newtable.key1 = keytable.key1
AND (newtable.key2 = keytable.key2 OR newtable.key2 IS NULL)