输出总行数

时间:2014-04-22 11:01:30

标签: tsql

下面的查询没有被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?

谢谢。

3 个答案:

答案 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   变量的值不得与数据检索相结合   操作