【发布时间】:2017-09-07 12:50:03
【问题描述】:
我想要两个结果集的联合。第一组包含工资单已关闭的期间,第二组只有一个有效期间。所以我在第二组中进行排序以按升序推导出活动期。但我总是得到“联合关键字附近的语法不正确”。我无法追踪这周围发生了什么。
SELECT SysId AS PeriodId,
[Name] AS PeriodName,
Number AS PeriodNumber,
[Year] AS PeriodYear,
PayrollSetId AS PayrollSetId
FROM (SELECT p.SysId AS PeriodId,
p.[Name] AS PeriodName,
p.Number AS PeriodNumber,
p.[Year] AS PeriodYear,
p.PayrollSetId AS PayrollSetId
FROM PeriodPayrollSetLookupView p
WHERE p.Closed = 1
UNION ALL
SELECT TOP 1
p.SysId AS PeriodId,
p.[Name] AS PeriodName,
p.Number AS PeriodNumber,
p.[Year] AS PeriodYear,
p.PayrollSetId AS PayrollSetId
FROM PeriodPayrollSetLookupView p
WHERE isnull (p.Closed, 0) = 0
ORDER BY p.[Year], p.[Name]
UNION ALL
SELECT '00000000-0000-0000-0000-000000000000' AS PeriodId,
'<Select...>' AS PeriodName,
NULL AS PeriodNumber,
NULL AS PeriodYear,
'00000000-0000-0000-0000-000000000000' AS PayrollSetId)AS PERIOD
ORDER BY [Year] DESC, Number DESC
非常感谢您的帮助。
【问题讨论】:
标签: sql-server sql-order-by union-all