【发布时间】:2014-06-17 02:31:38
【问题描述】:
我对 SQL 很陌生,可能在这里做错了,所以我希望有人可以帮助我。
我有一个更长的存储过程,以下面的结尾。
这里的想法是将两个查询合并为一个,这样我就不需要单独的存储过程,但仍然将结果分隔为一个按国家/地区选择(selCountry),另一个按日期选择(selDate) .
当我尝试以这种方式保存它时,我收到错误:“Incorrect syntax near the keyword 'UNION'.
当我在单独的程序中运行它们时,一切正常。
-- create final output
SELECT CONVERT(DATETIME, dDay) AS dDay,
CONVERT(VARCHAR(11), dDay, 106) AS dLong,
CONVERT(VARCHAR(10), dDay, 126) AS dShort,
countries,
regions,
mode,
dName,
dDesc
FROM @tempFix
WHERE countries LIKE '%'+@selCountry+'%'
OR regions LIKE '%'+@selCountry+'%'
ORDER BY dDay
UNION ALL
SELECT CONVERT(DATETIME, dDay) AS dDay,
CONVERT(VARCHAR(11), dDay, 106) AS dLong,
CONVERT(VARCHAR(10), dDay, 126) AS dShort,
countries,
regions,
mode,
dName,
dDesc
FROM @tempFix
WHERE DAY(dDay) = DAY(@selDate)
AND MONTH(dDay) = MONTH(@selDate)
FOR XML PATH('dDays'), ELEMENTS, TYPE, ROOT('root')
非常感谢您在此提供的任何帮助,迈克。
【问题讨论】:
-
排序在最后。
标签: sql sql-server select union union-all