我有两个表,我想写一个查询,它会给出我这样做的最高和最低值,但它显示''在union附近有一些错误'....(使用union是mand。)< / p>
select TOP 1 od.productid,od.unitprice,totalprice=(od.unitprice-od.discount) from orderdetails od
inner join
orders o
on od.orderid=o.orderid
where o.orderdate between '10/7/1997' and '10/14/1997'
order by totalprice asc
union
select TOP 1 od.productid,od.unitprice,totalprice=(od.unitprice-od.discount) from orderdetails od
inner join
orders o
on od.orderid=o.orderid
where o.orderdate between '10/7/1997' and '10/14/1997'
order by totalprice asc
我做错了什么?
答案 0 :(得分:1)
让我们假设您使用的是Sql Server。
你不能将ORDER BY
作为工会第一部分的一部分。
如果您希望使用order by,则需要使用子选择。
像
这样的东西DECLARe @TABLE TABLE(
Val VARCHAR(20)
)
SELECT *
FROM (
SELECT TOP 1
Val
FROM @TABLE
ORDER BY val
) minVal
UNION
SELECT *
FROM (
SELECT TOP 1
Val
FROM @TABLE
ORDER BY val DESC
) maxVal