Q1과 Q2를 Q5와 같은 someting으로 결합하는 방법 (하지만 작동!)? 계획?Sql은 여러 매개 변수로 WHEN 및 IF 문을 결합합니다.
--Q1 오류없이 실행 않습니다 : DECLARE @RfDate 날짜 DECLARE의 @description 나는 ... SQL 서버 2008 R2
지금까지 시도했다 보려면 다음을 보면 붙어 NVARCHAR (250) DECLARE는 SET를 int로 @BAccount @RfDate = '{Rf_Date}' SET @description = {dbo.BankstatementLine_Description | 종류 = 문자열} SET의 @BAccount = {dbo.BankAccount_Id}
IF @RfDate <> ''
BEGIN
SELECT *
FROM
dbo.BankStatementLine
WHERE
Date >[email protected]
AND
FkBankAccount = @BAccount
AND
IsDebit = 'true'
AND
Id NOT IN (select FkBankStatementLine from DocumentBankStatementLine)
END
ELSE
BEGIN
SELECT *
FROM
dbo.BankStatementLine
WHERE
Date <> @RfDate
AND
FkBankAccount [email protected]
AND
IsDebit = 'true'
AND
Id NOT IN (select FkBankStatementLine from DocumentBankStatementLine)
END
오류없이 실행 않습니다
--Q2가 : DECLARE은 = {Rf_Amount}
IF @RAmount <>''
BEGIN
SELECT Amount
FROM dbo.BankStatementLine
WHERE [email protected]
END
ELSE
BEGIN
SELECT Amount
FROM dbo.BankStatementLine
WHERE Amount<>@RAmount
END
X-제로 의 도움 후 SET의 @RAmount을 떠 @RAmount (필수는 더 나은 내 캐릭터를 설명 그때 내 프로그램 기술 btw), 내가 실제로 마지막으로 두 가지 AND OR 규칙을 제외하고, 할 필요가 다음 쿼리를 생각해 냈어. 등 .....
을 내가 필드 @RfAccept에 '북경'을 입력하면, 설명 "0111111111 GPPeking"아 파크 항목이 제시되어야한다, 어떤 영향이없는,하지만하지 않습니다되어
DECLARE @RfDate date
DECLARE @BAccount int
DECLARE @RfAmount decimal
DECLARE @RfAcAmount float
DECLARE @RfKenmerk nvarchar(250)
DECLARE @RfAccept nvarchar(250)
SET @RfDate = '{Rf_Date}'
SET @BAccount = {dbo.BankAccount_Id}
SET @RfAmount = {Rf_Amount}
SET @RfAcAmount = {Rf_AccAmount}
SET @RfKenmerk = {Rf_Betalingskenmerk|type=string}
SET @RfAccept = {Rf_Acceptgiro|type=string}
SELECT *
FROM
dbo.BankStatementLine
WHERE -- All statements can have a value or ''. All statements are not mandatory.
isDebit = 1
AND Id NOT IN (select FkBankStatementLine from DocumentBankStatementLine)
AND fkBankAccount = {dbo.bankAccount_Id}
AND ((Date = @RfDate AND @RfDate <> '')
OR (Date <> @RfDate AND @RfDate = ''))
AND ((Amount = @RfAmount AND @RfAmount <> '')
OR (Amount <> @RfAmount AND @RfAmount = ''))
AND ((Amount = @RfAcAmount AND @RfAcAmount <> '')
OR (Amount <> @RfAcAmount AND @RfAcAmount = ''))
AND((Description LIKE '%@RfAccept%' AND @RfAccept<>'')--When Rf_Acceptgiro has a value, the value must be part of the field Description.
OR (Description <> @RfAccept AND @RfAccept ='')) --OR Return all Description rules
AND((Description LIKE '%@RfKenmerk%' AND @RfKenmerk<>'')--When Rf_Kenmerk has a value, the value must be part of the field Description.
OR (Description <> @RfKenmerk AND @RfKenmerk =''))--OR Return all Description rules
Amount = CASE WHEN @RAmount <> '' THEN @RAmount
WHEN @RAcAmount <> '' THEN @RacAmount
ELSE Amount END
난 당신이 찾고있는 생각이다 : 당신이 (이것은 일반적으로 지정하는 데 도움) SQL Server와 함께 작업하는 것처럼
코드는 따르기가 어렵고 SQL이 지원하지 않는 코드를 시도하고 있습니다. 당신이 달성하고자하는 것을 보여줄 수 있다면 샘플 날짜와 함께, 더 많은 사람들이 당신을 도울 수 있어야합니다. ... – Sparky
"Q5"에서 한 즉각적인 코멘트는 IF/ELSE/ELSE를 보는 것 같습니다. 구조? – BRFennPocock
* 알고 있으며 유감입니다. 나는 지독한 일에 대해 몇 시간 동안 일하고 있었고 곧 독감에 걸렸다. 그게 내가 웹에 질의를 바로 써서 오늘 아침에 새 표정을 지었다. 봐 주셔서 감사합니다. X-Zero (도움을 주셔서 감사합니다.)의 도움을 받아 쿼리를 받았지만 여전히 해결해야 할 한 가지는 ... – Bouwplaats