我想SELECT
從SQL Server 2008的一個特定的記錄,這是我使用如何在查詢結尾添加變量?
ALTER PROCEDURE [dbo].[usp_GetTotalSalesReport]
(@FROM_DATE nchar(20),
@TO_DATE nchar(20),
@SALESMANCODE nchar(8)
)
AS
BEGIN
DECLARE @CONDITION TEXT
IF (@FROM_DATE IS NULL AND @TO_DATE IS NULL AND @SALESMANCODE = 'ALL') BEGIN
SET @CONDITION = NULL
END
IF (@FROM_DATE IS NULL AND @TO_DATE IS NULL AND @SALESMANCODE != 'ALL') BEGIN
SET @CONDITION = ' WHERE SalesManCode= @SALESMANCODE'
END
IF @FROM_DATE IS NOT NULL AND @SALESMANCODE = 'ALL' BEGIN
SET @CONDITION = ' WHERE TransactionDateTime >= @FROM_DATE AND TransactionDateTime <= @TO_DATE'
END
IF @FROM_DATE IS NOT NULL AND @SALESMANCODE != 'ALL' BEGIN
SET @CONDITION = ' WHERE TransactionDateTime >= @FROM_DATE AND TransactionDateTime <= @TO_DATE AND SalesManCode = @SALESMANCODE'
END
IF @FROM_DATE IS NOT NULL AND @TO_DATE IS NOT NULL AND @SALESMANCODE = 'ALL' BEGIN
SET @CONDITION = ' WHERE TransactionDateTime >= @FROM_DATE AND TransactionDateTime <= @TO_DATE'
END
IF @FROM_DATE IS NOT NULL AND @TO_DATE IS NOT NULL AND @SALESMANCODE != 'ALL' BEGIN
SET @CONDITION =' WHERE TransactionDateTime >= @FROM_DATE AND TransactionDateTime <= @TO_DATE AND SalesManCode = @SALESMANCODE'
END
SELECT RouteName
,SalesManCode
,SalesManName
,CustomerCode
,CustomerNameEng
,TransactionDateTime
,DocumentPrefix
,DocumentNumber
,BalanceDueAmount
,RouteID
,PaymentType FROM v_DCS_Rpt_Total_Sales @CONDITION
END
代碼如果我嘗試在查詢的末尾添加@CONDITION
變量像
PaymentType FROM v_DCS_Rpt_Total_Sales @CONDITION
我收到此錯誤
附近有語法錯誤@CONDITION「
我迄今爲止嘗試是:
PaymentType FROM v_DCS_Rpt_Total_Sales +" "+ @CONDITION`
但它給我這個錯誤
附近有語法錯誤 '+'。
只是說明理由那些誰給下投票 – Rakesh
條件是文本,因此請使用nvarchar(MAX)。文字已棄用 –
@Vijesh糟糕的代碼,糟糕的命名約定,沒有太多的指令手冊閱讀,只有列前的逗號是好的代碼。 – Tomasito