Sql server 在标量值=计数(*)处选择顶部N
我试图设置标量值。所需的结果来自Sql server 在标量值=计数(*)处选择顶部N,sql-server,tsql,Sql Server,Tsql,我试图设置标量值。所需的结果来自选择带领带的TOP 1块。我怎样才能做好呢 我尝试的方式是: USE AdventureWorks2014 GO CREATE FUNCTION funcGetLastFridayOrders RETURNS SMALLINT AS BEGIN DECLARE @orders_quantity SMALLINT SELECT TOP 1 WITH TIES @orders_quantity = COUNT(*) FROM Purchasi
选择带领带的TOP 1
块。我怎样才能做好呢
我尝试的方式是:
USE AdventureWorks2014
GO
CREATE FUNCTION funcGetLastFridayOrders
RETURNS SMALLINT
AS
BEGIN
DECLARE @orders_quantity SMALLINT
SELECT TOP 1 WITH TIES @orders_quantity = COUNT(*)
FROM Purchasing.PurchaseOrderHeader
WHERE DATEPART(DAY,OrderDate) = 5
GROUP BY OrderDate
ORDER BY OrderDate DESC
RETURN @order_quantity
END
错误消息:
必须声明标量变量“@order\u quantity”
鉴于
DECLARE @var INT
SELECT @var = intValue FROM table WHERE id = 1
工作正常。这只是返回行中的一个输入错误。你写的是“订单数量”而不是“订单数量” 这是正确的说法:
USE AdventureWorks2014
GO
CREATE FUNCTION funcGetLastFridayOrders
RETURNS SMALLINT
AS
BEGIN
DECLARE @orders_quantity SMALLINT
SELECT TOP 1 WITH TIES @orders_quantity = COUNT(*)
FROM Purchasing.PurchaseOrderHeader
WHERE DATEPART(DAY,OrderDate) = 5
GROUP BY OrderDate
ORDER BY OrderDate DESC
RETURN @orders_quantity
END
这只是回路线上的一个输入错误。你写的是“订单数量”而不是“订单数量” 这是正确的说法:
USE AdventureWorks2014
GO
CREATE FUNCTION funcGetLastFridayOrders
RETURNS SMALLINT
AS
BEGIN
DECLARE @orders_quantity SMALLINT
SELECT TOP 1 WITH TIES @orders_quantity = COUNT(*)
FROM Purchasing.PurchaseOrderHeader
WHERE DATEPART(DAY,OrderDate) = 5
GROUP BY OrderDate
ORDER BY OrderDate DESC
RETURN @orders_quantity
END
您有一个语法错误
DECLARE@orders\u quantity SMALLINT
但你用它作为回报
RETURN @order_quantity
您有一个语法错误
DECLARE@orders\u quantity SMALLINT
但你用它作为回报
RETURN @order_quantity
非常感谢。我保证会更加专心!很高兴能帮上忙谢谢。我保证会更加专心!很高兴能为您提供帮助您希望
TOP 1与TIES
,这显式地打开了查询返回多行的可能性,但是您要将该结果分配给标量变量吗?我无法理解达到这一特定点的思维过程是什么。我正在计算上周五的订单。您希望TOP 1与TIES
,这会显式地打开查询返回多行的可能性,但随后您将该结果分配给标量变量?我无法理解达到这一点的思维过程是什么。我正在计算上周五的订单。