mad*_*ulf 2 sql t-sql sql-server union sql-server-2005
我在SQL Server 2005中有这个奇怪的错误,我在其中进行工作查询,在其下面添加UNION关键字,然后再次复制查询.在我看来,这应该始终有效,但事实并非如此.我收到消息'关键字'union'附近的语法错误.
什么可能造成这个问题?
更具体地说,这是完整的查询:
select distinct deliveries.id, orders.id, 20 + sum(orders.mass1) as allowed_duration
from features_resources
inner join features on features.id = featureid
inner join orders on orders.id = features_resources.resourceid
inner join orderinformations on orders.id = orderinformations.orderid
inner join deliveries on orderinformations.deliveryid = deliveries.id
where features.name = 'O_FRAIS'
and (deliveries.ID IN
(SELECT ID
FROM dbo.DeliveriesInExportedSchedule))
group by deliveries.id, features.name ,orders.id order by deliveries.id
union
select distinct deliveries.id, orders.id, 20 + sum(orders.mass1) as allowed_duration
from features_resources
inner join features on features.id = featureid
inner join orders on orders.id = features_resources.resourceid
inner join orderinformations on orders.id = orderinformations.orderid
inner join deliveries on orderinformations.deliveryid = deliveries.id
where features.name = 'O_FRAIS'
and (deliveries.ID IN
(SELECT ID
FROM dbo.DeliveriesInExportedSchedule))
group by deliveries.id, features.name ,orders.id order by deliveries.id
Run Code Online (Sandbox Code Playgroud)
我试图通过从一个简单的查询开始并逐个添加功能(内部联接,嵌套查询,分组依据,总和......)来重现较小查询的错误,但无法再次重现错误.
任何的想法 ?
它实际上order by deliveries.id是导致问题的上半部分.
在order by需要应用到整个查询.
语法示例
SELECT v1.number
FROM master.dbo.spt_values v1
WHERE v1.number > 2000
UNION
SELECT v2.number
FROM master.dbo.spt_values v2
WHERE v2.number < 10
ORDER BY v1.number
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1696 次 |
| 最近记录: |