下面的查询没有被SQL Server解析,我可以理解列名需要别名,我同样做了。查询背后的想法是使用CTE输出行数。
DECLARE @TotalRows AS INT = 0 -- OUTPUT
WITH orders AS
(
SELECT @TotalRows = COUNT(CustomerID),SalesOrderID, CustomerID, OrderDate
FROM Sales.SalesOrderHeader
WHERE OrderDate = '2007/07/01'
)
SELECT c.CustomerID,
orders.SalesOrderID,
orders.OrderDate
FROM Sales.Customer AS c
INNER JOIN orders
ON c.CustomerID = orders.CustomerID
ORDER BY orders.OrderDate DESC;
如何修改查询以产生所需的retult?
谢谢。
答案 0 :(得分:0)
试试这个
SELECT C.CustomerID,
O.SalesOrderID,
O.OrderDate
FROM Sales.Customer AS C
INNER JOIN Sales.SalesOrderHeader O ON
C.CustomerID = O.CustomerID
WHERE O.OrderDate = '2007/07/01'
ORDER BY O.OrderDate DESC;
答案 1 :(得分:0)
输出总行数或行数不清楚
select c.CustomerID,
o.SalesOrderID,
o.OrderDate,
count(*)
FROM Sales.Customer AS c
JOIN Sales.SalesOrderHeader o
ON c.CustomerID = o.CustomerID
and o.OrderDate = '2007/07/01'
group by c.CustomerID, o.SalesOrderID, o.OrderDate
order by o.OrderDate desc
select count(*)
FROM Sales.Customer AS c
JOIN Sales.SalesOrderHeader o
ON c.CustomerID = o.CustomerID
and o.OrderDate = '2007/07/01'
select count(distinct(CustomerID))
FROM Sales.SalesOrderHeader o
where o.OrderDate = '2007/07/01'
答案 2 :(得分:0)
你想要做的事情是不可能的。
查询返回结果集或者为变量赋值。从来没有两个在同一时间。
Msg 141,Level 15,State 1,Line 3 SELECT语句,用于分配a 变量的值不得与数据检索相结合 操作