ALTER PROCEDURE [dbo].[Pro_MC_AccountDetailReport]
(
@MemberID uniqueidentifier,
@BeginDate datetime,
@EndDate dateTime,
@OpenType varchar(20)
    )
ASDECLARE @strWhere VARCHAR(200)
DECLARE @Type VARCHAR(20)
IF @OpenType='充值'
SET @Type='充值'
ELSE IF @OpenType='转帐'
SET @Type='会员卡转账'
ELSE IF @OpenType='消费'
SET @Type='消费支付'
ELSE 
SET @Type='所有'IF (@Type='所有')
BEGIN
    SELECT ID
,F_SN
,F_Date
,F_Type
,F_Summary
,CASE WHEN F_AddMoney>0 THEN F_BalanceMoney-F_AddMoney ELSE F_BalanceMoney+F_SubtractMoney END F_OriMoney 
,F_AddMoney
,F_SubtractMoney
,F_BalanceMoney
    FROM @tbAccountDetail 
WHERE DateDiff(day,@BeginDate,F_Date)>=0 and DateDiff(day,@EndDate,F_Date)<=0
END
ELSE
BEGIN
    SELECT ID
,F_SN
,F_Date
,F_Type
,F_Summary
,CASE WHEN F_AddMoney>0 THEN F_BalanceMoney-F_AddMoney ELSE F_BalanceMoney+F_SubtractMoney END F_OriMoney 
,F_AddMoney
,F_SubtractMoney
,F_BalanceMoney
    FROM @tbAccountDetail 
WHERE DateDiff(day,@BeginDate,F_Date)>=0 and DateDiff(day,@EndDate,F_Date)<=0 and F_Type=@Type
END请问如何优化 最后查询的 WHERE DateDiff(day,@BeginDate,F_Date)>=0 and DateDiff(day,@EndDate,F_Date)<=0 and F_Type=@Type 条件写成一句。而不是现在的:
IF (@Type='所有')
BEGIN
    SELECT ID
,F_SN
,F_Date
,F_Type
,F_Summary
,CASE WHEN F_AddMoney>0 THEN F_BalanceMoney-F_AddMoney ELSE F_BalanceMoney+F_SubtractMoney END F_OriMoney 
,F_AddMoney
,F_SubtractMoney
,F_BalanceMoney
    FROM @tbAccountDetail 
WHERE DateDiff(day,@BeginDate,F_Date)>=0 and DateDiff(day,@EndDate,F_Date)<=0
END
ELSE
BEGIN
    SELECT ID
,F_SN
,F_Date
,F_Type
,F_Summary
,CASE WHEN F_AddMoney>0 THEN F_BalanceMoney-F_AddMoney ELSE F_BalanceMoney+F_SubtractMoney END F_OriMoney 
,F_AddMoney
,F_SubtractMoney
,F_BalanceMoney
    FROM @tbAccountDetail 
WHERE DateDiff(day,@BeginDate,F_Date)>=0 and DateDiff(day,@EndDate,F_Date)<=0 and F_Type=@Type
END
我需要的是:
    SELECT ID
,F_SN
,F_Date
,F_Type
,F_Summary
,CASE WHEN F_AddMoney>0 THEN F_BalanceMoney-F_AddMoney ELSE F_BalanceMoney+F_SubtractMoney END F_OriMoney 
,F_AddMoney
,F_SubtractMoney
,F_BalanceMoney
    FROM @tbAccountDetail 
WHERE 。(需要解决)