条款我都有点类型变量@ExcludeCB
它允许用户排除查询结果的类型交易的标准。问题是,我怎么能把这个条件if @ExcludeCB = 1 then TN.TT !='CB'
与其他条件结合起来?我使用了CASE WHEN
,但它反映了错误。下面是代码的一部分:如何使用位型变量作为前提条件在SQL服务器中
declare @FVoucher as int; ---- first Accounting Voucher No
declare @LVoucher as int; ---- last Accounting Voucher No
declare @ExcludeCB as bit; ---- excluding Transaction type CB
set @FVoucher = 2004002;
set @LVoucher = 2004120;
set @ExcludeCB =1
WITH ctOB as ---- making a TB prior to the report range
(Select GLcode, GLname, Sum((case WHEN amount>0 then Amount ELSE 0 END)) as obDebit ,
Sum((Case When Amount <0 then - Amount ELSe 0 END)) as obCredit
From TN
WHERE Year(tn.GDate) = Convert(int,substring(Convert(varchar,@fVoucher),1,4)) and tn.VoucherNo < @FVoucher
AND Case @ExcludeCB when 1 then tn.tt !='CB' ELSE 1 = 1 END
group by GLcode, GLname
) ,
请[编辑]你的问题,并确保所有的代码被标记为代码,和所有非代码是不是** **喊在美国。 –
案例听起来像是正确的做法;什么是错误? – Xedni
@Xedni - CASE听起来不像是正确的方法。这似乎是一个常见的(我不知道它来自哪里)不仅仅是写布尔逻辑的错误。即编写WHERE子句的其余部分,然后写入AND(@ExcludeCB = 0 OR())'。 –