• 「stored procedure(ストアドプロシージャ)」SP-Sample2


    USE [APPLICATION_DEV]
    GO
    /****** Object:  StoredProcedure [dbo].[SPAA_APPLICATION_LIST_SEL]    Script Date: 12/08/2014 15:13:58 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- ==========================================================================================
    -- $Id: dbo.SPAA_APPLICATION_LIST_SEL.StoredProcedure.sql 776 2011-11-29 02:03:50Z ubukata $
    -- Create date : 2011/11/07
    -- Description : 申請検索結果取得
    --             : 検索条件に従い申請を検索する
    --             : セットの無い検索条件は、空文字列をセットすること
    --             : ===== 2011/11/29 #10 =====
    --             : 申請製品テーブルへの対応
    -- ==========================================================================================
    ALTER PROCEDURE [dbo].[SPAA_APPLICATION_LIST_SEL](
         @appli_no                    VARCHAR(11)        --申請No
        ,@materials_code            VARCHAR(1)        --資材媒体コード
        ,@materials_class_code        VARCHAR(2)        --資材分類コード
        ,@uniform_code                VARCHAR(10)        --統一コード
        ,@order_part_code            VARCHAR(5)        --発注品番
        ,@materials_no                VARCHAR(16)        --資材管理番号
        ,@application_date_start    VARCHAR(7)        --申請年月開始(yyyy/MM)
        ,@application_date_end        VARCHAR(7)        --申請年月終了(yyyy/MM)
        ,@permission_date_start        VARCHAR(7)        --許可年月開始(yyyy/MM)
        ,@permission_date_end        VARCHAR(7)        --許可年月終了(yyyy/MM)
        ,@materials_nm_knj            VARCHAR(255)    --資材名称
        ,@applicant_division        VARCHAR(10)        --申請部署コード
        ,@applicant_stf_code        VARCHAR(5)        --申請者コード
        ,@drug                        VARCHAR(2)        --薬剤コード
        ,@product                    VARCHAR(255)    --製品コード(カンマ区切り文字列)
        ,@status_no                    VARCHAR(255)    --申請ステータス(カンマ区切り文字列)
        ,@committee_no                VARCHAR(3)        --委員会
        ,@stfcode                    VARCHAR(5)        --申請者の担当者コード(事務局の場合、セットしない)
        --,@disp_order                VARCHAR(1)        --表示順(申請番号:"1"、薬剤:"2"、申請部署:"3")
    
    ) AS
    BEGIN
    
        --以下の値のいずれかがセットされている場合、そのキー値のみで検索を行う
        --申請番号
        --統一コード
        --発注品番
        --資材管理番号
        --->他の条件は全て渡されないとしてクリアする
        IF
            @appli_no <> '' OR @uniform_code <> '' OR @order_part_code <> '' OR @materials_no <> ''
        BEGIN
            IF
                @appli_no <> ''
            BEGIN
                SET @uniform_code = '';
                SET @order_part_code = '';
                SET @materials_no = '';
            END
    
            IF
                @uniform_code <> ''
            BEGIN
                SET @appli_no = '';
                SET @order_part_code = '';
                SET @materials_no = '';
            END
    
            IF
                @order_part_code <> ''
            BEGIN
                SET @appli_no = '';
                SET @uniform_code = '';
                SET @materials_no = '';
            END
    
            IF
                @materials_no <> ''
            BEGIN
                SET @appli_no = '';
                SET @uniform_code = '';
                SET @order_part_code = '';
            END
    
            --それ以外の検索条件をクリア
            SET @materials_code = '';
            SET @materials_class_code = '';
            SET @application_date_start = '';
            SET @application_date_end = '';
            SET @permission_date_start = '';
            SET @permission_date_end = '';
            SET @materials_nm_knj = '';
            SET @applicant_division = '';
            SET @applicant_stf_code = '';
            SET @drug = '';
            SET @product = '';
            SET @status_no = '';
            SET @committee_no = '';
    
        END
    
        --検索
        SELECT DISTINCT
             APPL.APPLI_NO        --申請No
            ,APPL.REVISION_NO        --修正No
            ,APPL.MATERIALS_NM_KNJ        --資材名称
            ,DRUG_NM_KNJ            --薬剤名称
            ,APPL.STATUS_NO AS APPLI_STATUS_NO        --申請ステータスNo
            ,APPL_STAT.STATUS_NAME_1 AS APPLI_STATUS_NM    --申請ステータス名
            ,INSPECTION_RESULT.DISCUSSION_RESULT_STATUS_NO        --審議結果ステータスNo
            ,DISS_STAT.STATUS_NAME_1 AS DISCUSSION_RESULT_STATUS_NM        --審議結果ステータス名
            ,APPL.UNIFORM_CODE        --統一コード
            ,APPL.ORDER_PART_CODE        --発注品番
            ,MAT.MATERIALS_NM_KNJ AS MATERIALS_CODE_NM_KNJ        --資材媒体(名称)
            ,MAT_CLS.MATERIALS_CLASS_NM_KNJ        --資材分類(名称)
            ,COMMITEE_APPL.COMMITTEE_NO        --委員会No
            ,DBSC.SCN_NM_KNJ            --申請部署名称
            ,STF.STF_NM_KNJ            --申請者名称
            ,CASE WHEN APPL.APPLICATION_DATE = '' 
                THEN '' 
                ELSE CONVERT(CHAR(10),CONVERT(DATETIME,APPL.APPLICATION_DATE,112),111) 
            END AS APPLICATION_DATE        --申請日
            ,APPL.MATERIALS_NO            --資材管理番号
            ,APPL.OLD_UNIFORM_CODE        --元統一コード
            ,DGIF.DRUG_SORT_1            --表示順1
            ,DBSC.ORG_DSP_SORT        --組織表示順
            ,APPL.REVISE_FLG    --新規/改定
            ,APPL.ORDER_FLG        --発注品番の要否
            ,CASE WHEN (ISNULL(APPL.STATUS_NO,'') = '21' OR ISNULL(APPL.STATUS_NO,'') = '22')
                THEN CONVERT(CHAR(10),CONVERT(DATETIME,APPL.UPD_DATE,112),111) 
                ELSE CONVERT(CHAR(10),CONVERT(DATETIME,APPL_HISTORY_21_22.SUPERIOR_APPROVE_YMD,112),111) 
            END AS SUPERIOR_APPROVE_DATE    --上長判定日
            ,CASE WHEN ISNULL(APPL_HISTORY_31.SECRETARIAT_YMD,'') = '' 
                THEN CASE WHEN ISNULL(APPL.STATUS_NO,'') = '31'
                    THEN CONVERT(CHAR(10),CONVERT(DATETIME,APPL.UPD_DATE,112),111) 
                    ELSE '' 
                    END 
                ELSE CONVERT(CHAR(10),CONVERT(DATETIME,APPL_HISTORY_31.SECRETARIAT_YMD,112),111) 
            END AS SECRETARIAT_ACCEPT_DATE  --初回事務局受理
            ,CASE WHEN (ISNULL(APPL.STATUS_NO,'') = '54' OR ISNULL(APPL.STATUS_NO,'') = '55')
                THEN CONVERT(CHAR(10),CONVERT(DATETIME,APPL.UPD_DATE,112),111) 
                ELSE CONVERT(CHAR(10),CONVERT(DATETIME,APPL_HISTORY_54_55.CHAIRPERSON_YMD,112),111) 
            END AS PERMISSION_DATE  --委員長判定日
            ,CASE WHEN ISNULL(APPL_HISTORY_71.PUBLISH_YMD,'') = '' 
                THEN CASE WHEN ISNULL(APPL.STATUS_NO,'') = '71'
                    THEN CONVERT(CHAR(10),CONVERT(DATETIME,APPL.UPD_DATE,112),111) 
                    ELSE '' 
                    END 
                ELSE CONVERT(CHAR(10),CONVERT(DATETIME,APPL_HISTORY_71.PUBLISH_YMD,112),111) 
            END AS PUBLISH_YMD  --初回公開日
    APPL_HISTORY_54_55
        FROM
            --申請
            TBAATR_APPLICATION AS APPL
            --審査結果
            LEFT OUTER JOIN (SELECT * FROM TBAATR_INSPECTION_RESULT WHERE DEL_FLG = '0') AS INSPECTION_RESULT
            ON( APPL.APPLI_NO = INSPECTION_RESULT.APPLI_NO
            AND APPL.REVISION_NO = INSPECTION_RESULT.REVISION_NO)
            --委員会審議申請
            LEFT OUTER JOIN (SELECT * FROM TBAARS_COMMITTEE_APPLICATION WHERE DEL_FLG = '0') AS COMMITEE_APPL
            ON( APPL.APPLI_NO = COMMITEE_APPL.APPLI_NO
            AND APPL.REVISION_NO = COMMITEE_APPL.REVISION_NO)
            --申請製品
            LEFT OUTER JOIN (SELECT * FROM TBAATR_PRODUCT WHERE DEL_FLG = '0') AS APPL_PROD
            ON( APPL.APPLI_NO = APPL_PROD.APPLI_NO)
            --資材媒体
            LEFT OUTER JOIN MATERIALS_INFO AS MAT
            ON( APPL.MATERIALS_CODE = MAT.MATERIALS_CODE)
            --資材分類
            LEFT OUTER JOIN MATERIALS_CLASS_INFO AS MAT_CLS
            ON( APPL.MATERIALS_CLASS_CODE = MAT_CLS.MATERIALS_CLASS_CODE)
            --薬剤マスタ
            LEFT OUTER JOIN TBCMRS_DRUG_INFO AS DGIF
            ON( APPL.DRUG = DGIF.DRUG_CODE)
            --組織ビュー
            --//20130911:ISHIKAWA:MOD:START:眼皮組織再編対応
            --LEFT OUTER JOIN VWAP_ORG_DBSC_LIST AS DBSC
            --ON( APPL.APPLICANT_DIVISION = DBSC.ORG_CODE
            --AND APPL.APPLICANT_DIV_REG_DATE BETWEEN DBSC.STA_YMD AND DBSC.END_YMD)
            LEFT OUTER JOIN VWAP_ORG_DBSC_LIST_INCDEL AS DBSC
            ON( APPL.APPLICANT_DIVISION = DBSC.ORG_CODE
            AND APPL.APPLICANT_DIV_REG_DATE BETWEEN DBSC.STA_YMD AND DBSC.END_YMD)
            --//20130911:ISHIKAWA:MOD:END:眼皮組織再編対応
            
            --担当者マスタ
            LEFT OUTER JOIN TBCMRS_STF_INFO AS STF
            ON( APPL.APPLICANT_STF_CODE = STF.STF_CODE)
            --申請ステータス
            INNER JOIN TBAAMS_STATUS AS APPL_STAT
            ON( APPL.STATUS_NO = APPL_STAT.STATUS_NO)
            --申請ステータス(審議結果)
            LEFT OUTER JOIN TBAAMS_STATUS AS DISS_STAT
            ON( INSPECTION_RESULT.DISCUSSION_RESULT_STATUS_NO = DISS_STAT.STATUS_NO)
            --申請履歴
            LEFT OUTER JOIN 
            (
                SELECT APPL_HISTORY_UPD_DATE.APPLI_NO,APPL_HISTORY_UPD_DATE.UPD_DATE AS SUPERIOR_APPROVE_YMD FROM TBAATR_APPLICATION_HISTORY APPL_HISTORY_UPD_DATE
                INNER JOIN 
                ( 
                    SELECT APPLI_NO,MAX(HISTORY_NO) AS HISTORY_NO FROM TBAATR_APPLICATION_HISTORY WHERE (STATUS_NO='21' OR STATUS_NO='22') GROUP BY APPLI_NO 
                ) APPL_HISTORY_CPD_MAX
                ON 
                    APPL_HISTORY_UPD_DATE.APPLI_NO=APPL_HISTORY_CPD_MAX.APPLI_NO
                AND APPL_HISTORY_UPD_DATE.HISTORY_NO=APPL_HISTORY_CPD_MAX.HISTORY_NO  
             )
            AS APPL_HISTORY_21_22
            ON( APPL.APPLI_NO = APPL_HISTORY_21_22.APPLI_NO )
            LEFT OUTER JOIN 
            (
                SELECT APPL_HISTORY_UPD_DATE.APPLI_NO,APPL_HISTORY_UPD_DATE.UPD_DATE AS SECRETARIAT_YMD FROM TBAATR_APPLICATION_HISTORY APPL_HISTORY_UPD_DATE
                INNER JOIN 
                ( 
                    SELECT APPLI_NO,MIN(HISTORY_NO) AS HISTORY_NO FROM TBAATR_APPLICATION_HISTORY WHERE (STATUS_NO='31') GROUP BY APPLI_NO 
                ) APPL_HISTORY_SAD_MIN
                ON 
                    APPL_HISTORY_UPD_DATE.APPLI_NO=APPL_HISTORY_SAD_MIN.APPLI_NO
                AND APPL_HISTORY_UPD_DATE.HISTORY_NO=APPL_HISTORY_SAD_MIN.HISTORY_NO  
             )
            AS APPL_HISTORY_31
            ON( APPL.APPLI_NO = APPL_HISTORY_31.APPLI_NO ) 
            LEFT OUTER JOIN 
            (
                SELECT APPL_HISTORY_UPD_DATE.APPLI_NO,APPL_HISTORY_UPD_DATE.UPD_DATE AS CHAIRPERSON_YMD FROM TBAATR_APPLICATION_HISTORY APPL_HISTORY_UPD_DATE
                INNER JOIN 
                ( 
                    SELECT APPLI_NO,MAX(HISTORY_NO) AS HISTORY_NO FROM TBAATR_APPLICATION_HISTORY WHERE (STATUS_NO='54' OR STATUS_NO='55') GROUP BY APPLI_NO 
                ) APPL_HISTORY_CPD_MAX
                ON 
                    APPL_HISTORY_UPD_DATE.APPLI_NO=APPL_HISTORY_CPD_MAX.APPLI_NO
                AND APPL_HISTORY_UPD_DATE.HISTORY_NO=APPL_HISTORY_CPD_MAX.HISTORY_NO  
             )
            AS APPL_HISTORY_54_55
            ON( APPL.APPLI_NO = APPL_HISTORY_54_55.APPLI_NO ) 
            LEFT OUTER JOIN 
            (
                SELECT APPL_HISTORY_UPD_DATE.APPLI_NO,APPL_HISTORY_UPD_DATE.UPD_DATE AS PUBLISH_YMD FROM TBAATR_APPLICATION_HISTORY APPL_HISTORY_UPD_DATE
                INNER JOIN 
                ( 
                    SELECT APPLI_NO,MIN(HISTORY_NO) AS HISTORY_NO FROM TBAATR_APPLICATION_HISTORY WHERE (STATUS_NO='71') GROUP BY APPLI_NO 
                ) APPL_HISTORY_PUB_MIN
                ON 
                    APPL_HISTORY_UPD_DATE.APPLI_NO=APPL_HISTORY_PUB_MIN.APPLI_NO
                AND APPL_HISTORY_UPD_DATE.HISTORY_NO=APPL_HISTORY_PUB_MIN.HISTORY_NO  
             )
            AS APPL_HISTORY_71
            ON( APPL.APPLI_NO = APPL_HISTORY_71.APPLI_NO )  
    
        WHERE
            APPL.DEL_FLG = '0'
        --主キー系の条件
        AND    APPL.APPLI_NO LIKE (CASE WHEN @appli_no = '' THEN APPL.APPLI_NO ELSE @appli_no + '%' END)
        AND    1 = (CASE WHEN @uniform_code = ''
                    THEN 1 
                    ELSE CASE WHEN APPL.UNIFORM_CODE LIKE @uniform_code + '%' THEN 1 ELSE 0 END
                END)
        AND    1 = (CASE WHEN @order_part_code = ''
                    THEN 1 
                    ELSE CASE WHEN APPL.ORDER_PART_CODE LIKE @order_part_code + '%' THEN 1 ELSE 0 END
                END)
        AND    1 = (CASE WHEN @materials_no = ''
                    THEN 1 
                    ELSE CASE WHEN APPL.MATERIALS_NO LIKE @materials_no + '%' THEN 1 ELSE 0 END
                END)
        --日付条件
        AND    1 = (CASE WHEN @application_date_start = ''
                    THEN 1 
                    ELSE CASE WHEN APPL.APPLICATION_DATE >= CONVERT(CHAR(8),CONVERT(DATETIME,@application_date_start + '/01' ,111),112) THEN 1 ELSE 0 END
                END)
        AND    1 = (CASE WHEN @application_date_end = ''
                    THEN 1 
                    ELSE CASE WHEN APPL.APPLICATION_DATE <= CONVERT(CHAR(8),DATEADD(DAY,-1,DATEADD(MONTH,+1,CONVERT(DATETIME,@application_date_end + '/01' ,111))),112) THEN 1 ELSE 0 END
                END)
        AND    1 = (CASE WHEN @permission_date_start = ''
                    THEN 1 
                    ELSE CASE WHEN APPL.PERMISSION_DATE >= CONVERT(CHAR(8),CONVERT(DATETIME,@permission_date_start + '/01' ,111),112) THEN 1 ELSE 0 END
                END)
        AND    1 = (CASE WHEN @permission_date_end = ''
                    THEN 1 
                    ELSE CASE WHEN APPL.PERMISSION_DATE <= CONVERT(CHAR(8),DATEADD(DAY,-1,DATEADD(MONTH,+1,CONVERT(DATETIME,@permission_date_end + '/01' ,111))),112) THEN 1 ELSE 0 END
                END)
    
        --それ以外の条件
        AND    APPL.MATERIALS_NM_KNJ LIKE (CASE WHEN @materials_nm_knj = '' THEN APPL.MATERIALS_NM_KNJ ELSE '%' + @materials_nm_knj + '%' END)
        AND    1 = (CASE WHEN @status_no = ''
                    THEN 1 
                    ELSE CASE WHEN APPL.STATUS_NO IN (SELECT [Text] FROM dbo.FNCO_SPLIT_TEXT(@status_no,default,default)) THEN 1 ELSE 0 END
                END)
        AND    APPL.MATERIALS_CODE = (CASE WHEN @materials_code = '' THEN APPL.MATERIALS_CODE ELSE @materials_code END)
        AND    1 = (CASE WHEN @materials_class_code = ''
                    THEN 1 
                    ELSE CASE WHEN APPL.MATERIALS_CLASS_CODE = @materials_class_code THEN 1 ELSE 0 END
                END)
        AND    APPL.DRUG = (CASE WHEN @drug = '' THEN APPL.DRUG ELSE @drug END)
        AND    1 = (CASE WHEN @product = ''
                    THEN 1 
                    ELSE CASE WHEN APPL_PROD.PROD_GRP_CODE IN (SELECT [Text] FROM dbo.FNCO_SPLIT_TEXT(@product,default,default)) THEN 1 ELSE 0 END
                END)
        AND    APPL.APPLICANT_DIVISION = (CASE WHEN @applicant_division = '' THEN APPL.APPLICANT_DIVISION ELSE @applicant_division END)
        AND    APPL.APPLICANT_STF_CODE = (CASE WHEN @applicant_stf_code = '' THEN APPL.APPLICANT_STF_CODE ELSE @applicant_stf_code END)
        AND    1 = (CASE WHEN @committee_no = ''
                    THEN 1 
                    ELSE CASE WHEN COMMITEE_APPL.COMMITTEE_NO = @committee_no THEN 1 ELSE 0 END
                END)
        ;
        --DEL:20131030:ISHIKAWA:START:ロールでのフィルターは解除
        --申請者の担当者コードがセットされている場合は、自分が申請者か申請者上長になっているものを検索
        --AND    (
        --        (APPL.APPLICANT_STF_CODE = CASE WHEN @stfcode = '' THEN APPL.APPLICANT_STF_CODE ELSE @stfcode END)
        --    OR    (APPL.SUPERIOR_STF_CODE = CASE WHEN @stfcode = '' THEN APPL.SUPERIOR_STF_CODE ELSE @stfcode END)
        --);
        --DEL:20131030:ISHIKAWA:END
        
    END
    View Code
  • 相关阅读:
    右上角的 那个 个数,
    i am sorry,
    搞定了,一个是重复,一个是 判断navigationcontroller里面 最后的那个类,
    ios no code signature found,
    这次逻辑通了,
    分析下现在 遇到的这个棘手的问题,
    时间 折腾我的,
    老大说 调到 4寸的 就不用适配 5了,
    应用程序生命周期,
    解决【npm ERR! Unexpected end of JSON input while parsing near '...sh_time":141072930277'】方案
  • 原文地址:https://www.cnblogs.com/haiy/p/4151004.html
Copyright © 2020-2023  润新知