Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 隐藏和显示选定的列数据_Sql_Sql Server_Sql Server 2008_Crystal Reports - Fatal编程技术网

Sql 隐藏和显示选定的列数据

Sql 隐藏和显示选定的列数据,sql,sql-server,sql-server-2008,crystal-reports,Sql,Sql Server,Sql Server 2008,Crystal Reports,我在做crystal report,用户要求只显示已经检查过的数据 日期从[日历] 日期[日历] 在[复选框]之前显示数据 @dateTo datetime @dateFrom datetime @showdatab4 nvarchar // or what? @showdataAf nvarchar //or what? @showDiff nvarchar // or what? Select dataBefore, dataAfter, differential, date_fro

我在做crystal report,用户要求只显示已经检查过的数据

日期从[日历]

日期[日历]

在[复选框]之前显示数据

@dateTo datetime
@dateFrom datetime
@showdatab4 nvarchar // or what?
@showdataAf nvarchar  //or what?
@showDiff   nvarchar // or what?

Select dataBefore, dataAfter, differential, date_from ,date_to 
from tableA
where date_from >= @datefrom and date_to <DATEADD(d,1,@dateTo)
在[复选框]后显示数据

@dateTo datetime
@dateFrom datetime
@showdatab4 nvarchar // or what?
@showdataAf nvarchar  //or what?
@showDiff   nvarchar // or what?

Select dataBefore, dataAfter, differential, date_from ,date_to 
from tableA
where date_from >= @datefrom and date_to <DATEADD(d,1,@dateTo)
显示不同的[复选框]

@dateTo datetime
@dateFrom datetime
@showdatab4 nvarchar // or what?
@showdataAf nvarchar  //or what?
@showDiff   nvarchar // or what?

Select dataBefore, dataAfter, differential, date_from ,date_to 
from tableA
where date_from >= @datefrom and date_to <DATEADD(d,1,@dateTo)
@dateTo-datetime
@dateFrom datetime
@showdatab4 nvarchar//还是什么?
@showdataAf nvarchar//还是什么?
@showDiff nvarchar//还是什么?
选择数据前、数据后、差异、日期自、日期至
从表格

如果date_from>=@datefrom和date_to=@datefrom和date_to=@datefrom和date_to确定,则可以基于该条件创建动态SQL查询。假设是这样。这是你唯一的想法

--EXEC SP_LoanCustomerInterest 'DETAIL','','019','9/1/2011','9/1/2011','L1'
ALTER PROC SP_LoanCustomerInterest(@DS VARCHAR(20),@AC_NO VARCHAR(50),@BR_CODE VARCHAR(10),@Edate1 VARCHAR(20),@EDATE2 VARCHAR(20),@AC_GROUP_CODE VARCHAR(MAX)='')
AS 
BEGIN
--CREATED BY : NP SUBEDI FOR WEB BASED REPORT - JUNE 12 2013
SET NOCOUNT ON

DECLARE @SQL VARCHAR(MAX)=''
CREATE TABLE #TEMP(FIELD1 VARCHAR(50))
DECLARE @I INT=1
DECLARE @POS INT=1
SET NOCOUNT ON
WHILE @POS<LEN(@AC_GROUP_CODE)
    BEGIN
        INSERT INTO #TEMP(FIELD1)VALUES(SUBSTRING(@AC_GROUP_CODE,@I,2))
        SET @POS=@POS+3
        SET @I=@POS
    END

If (@DS = 'DETAIL' )
    BEGIN
       SET @SQL = 'SELECT DISTINCT DBO.GETACNAME(LAM.AC_NO,'''+@BR_CODE+''') AS AC_NAME,AG.AC_GROUP_NAME,LT.AC_NO,LT.AC_GROUP_CODE,LT.TRAN_DATE,DBO.ENGTONEP(LT.TRAN_DATE) AS TRAN_NDATE,
                 (select Sum(int_amt) from loan_int_tran as LT1 where LT1.BR_CODE='''+@BR_CODE+''' AND int_type=''RI'' and tran_date>='''+@Edate1 +''' and tran_date<='''+@EDATE2 +''' AND LT1.AC_NO=LT.AC_NO AND LT1.TRAN_DATE=LT.TRAN_DATE AND INT_OPR IN(''A'',''R'',''XA'')) as RI,
                 (select sum(int_amt) from loan_int_tran as LT1 where LT1.BR_CODE='''+@BR_CODE+''' AND int_type=''II'' and tran_date>='''+@Edate1 +''' and tran_date<='''+@EDATE2 +''' AND LT1.AC_NO=LT.AC_NO AND LT1.TRAN_DATE=LT.TRAN_DATE AND INT_OPR IN(''A'',''R'',''XA'')) as II,
                 (select sum(int_amt) from loan_int_tran as LT1 where LT1.BR_CODE='''+@BR_CODE+''' AND int_type=''PI'' and tran_date>='''+@Edate1 +''' and tran_date<='''+@EDATE2 +''' AND LT1.AC_NO=LT.AC_NO AND LT1.TRAN_DATE=LT.TRAN_DATE AND INT_OPR IN(''A'',''R'',''XA'')) as PI,
                 (select sum(int_amt) from loan_int_tran as LT1 where LT1.BR_CODE='''+@BR_CODE+''' AND int_type=''ARI'' and tran_date>='''+@Edate1 +''' and tran_date<='''+@EDATE2 +''' AND LT1.AC_NO=LT.AC_NO AND LT1.TRAN_DATE=LT.TRAN_DATE AND INT_OPR IN(''A'',''R'',''XA'')) as ARI,
                 (select sum(int_amt) from loan_int_tran as LT1 where LT1.BR_CODE='''+@BR_CODE+''' AND int_type=''OI'' and tran_date>='''+@Edate1 +''' and tran_date<='''+@EDATE2 +''' AND LT1.AC_NO=LT.AC_NO AND LT1.TRAN_DATE=LT.TRAN_DATE AND INT_OPR IN(''A'',''R'',''XA'')) as ORI
                 FROM LOAN_INT_TRAN AS LT,LOAN_MAST AS LAM,AC_GROUP AS AG Where LT.BR_CODE='''+@BR_CODE+''' AND LAM.BR_CODE='''+@BR_CODE+''' AND LT.AC_NO = LAM.AC_NO And LT.AC_GROUP_CODE = AG.AC_GROUP_CODE And LT.AC_GROUP_CODE = LAM.AC_GROUP_CODE AND LT.AC_GROUP_CODE IN (SELECT FIELD1 FROM #TEMP)
                 AND (LT.TRAN_DATE >='''+@Edate1 +''' AND LT.TRAN_DATE <='''+@EDATE2+''')'
        If @AC_NO<> '' 
            SET @SQL = @SQL + ' AND LT.AC_NO='''+@AC_NO+''''
    END

If (@DS <> 'DETAIL')
    BEGIN
       SET @SQL ='Select Distinct DBO.GETACNAME(LAM.AC_NO,'''+@BR_CODE+''') AS AC_NAME,AG.AC_GROUP_NAME,LT.AC_NO,LT.AC_GROUP_CODE,
                (Select sum(int_amt) from loan_int_tran as LT1 where BR_CODE='''+@BR_CODE+''' AND int_type=''RI'' and tran_date>='''+@Edate1 +''' and tran_date<='''+@EDATE2 +''' AND AC_NO=LT.AC_NO AND AC_GROUP_CODE=LAM.AC_GROUP_CODE AND INT_OPR IN(''A'',''R'',''XA'')) as RI,
                (Select sum(int_amt) from loan_int_tran as LT1 where BR_CODE='''+@BR_CODE+''' AND int_type=''II'' and tran_date>='''+@Edate1 +''' and tran_date<='''+@EDATE2 +''' AND AC_NO=LT.AC_NO AND AC_GROUP_CODE=LAM.AC_GROUP_CODE AND INT_OPR IN(''A'',''R'',''XA'')) as II,
                (Select sum(int_amt) from loan_int_tran as LT1 where BR_CODE='''+@BR_CODE+''' AND int_type=''PI'' and tran_date>='''+@Edate1 +''' and tran_date<='''+@EDATE2 +''' AND AC_NO=LT.AC_NO AND AC_GROUP_CODE=LAM.AC_GROUP_CODE AND INT_OPR IN(''A'',''R'',''XA'')) as PI,
                (Select sum(int_amt) from loan_int_tran as LT1 where BR_CODE='''+@BR_CODE+''' AND int_type=''ARI'' and tran_date>='''+@Edate1 +''' and tran_date<='''+@EDATE2 +''' AND AC_NO=LT.AC_NO AND AC_GROUP_CODE=LAM.AC_GROUP_CODE AND INT_OPR IN(''A'',''R'',''XA'')) as ARI,
                (Select sum(int_amt) from loan_int_tran as LT1 where BR_CODE='''+@BR_CODE+''' AND int_type=''OI'' and tran_date>='''+@Edate1 +''' and tran_date<='''+@EDATE2 +''' AND AC_NO=LT.AC_NO AND AC_GROUP_CODE=LAM.AC_GROUP_CODE AND INT_OPR IN(''A'',''R'',''XA'')) as ORI
                FROM LOAN_INT_TRAN AS LT,LOAN_MAST AS LAM,AC_GROUP AS AG 
                Where LT.BR_CODE='''+@BR_CODE+''' AND LAM.BR_CODE='''+@BR_CODE+''' AND LT.BR_CODE=LAM.BR_CODE AND LT.AC_NO=LAM.AC_NO And LT.AC_GROUP_CODE=AG.AC_GROUP_CODE And LT.AC_GROUP_CODE=LAM.AC_GROUP_CODE 
                AND LT.AC_GROUP_CODE IN (SELECT FIELD1 FROM #TEMP)'

        If @AC_NO <> ''
            SET @SQL = @SQL + ' AND LT.AC_NO='''+@AC_NO + ''''
    END

EXEC sp_sqlexec @SQL
END
——执行副总裁贷款客户利益“详情”、“019”、“2011年9月1日”、“2011年9月1日”、“L1”
ALTER PROC SP_LoanCustomerInterest(@DS VARCHAR(20),@AC_NO VARCHAR(50),@BR_CODE VARCHAR(10),@Edate1 VARCHAR(20),@EDATE2 VARCHAR(20),@AC_GROUP_CODE VARCHAR(最大值)='')
作为
开始
--创建人:NP SUBEDI,用于基于WEB的报告-2013年6月12日
不计较
声明@SQL VARCHAR(MAX)=”
创建表#TEMP(FIELD1 VARCHAR(50))
声明@I INT=1
声明@POS INT=1
不计较
而@POS