sql >> データベース >  >> RDS >> Sqlserver

入力パラメーターをストアード・プロシージャーに渡すことができません

    これを試してください-

    CREATE PROCEDURE [dbo].[tp_SelectTransactionHistorySearch] 
    (
        @OffSetRowNo INT,
        @FetchRowNo INT,
        @StatusSelection NVARCHAR(MAX),
        @isReviewed BIT,
        @ProjectCaseNumber VARCHAR(MAX),
        @CostPageNumber VARCHAR(MAX),
        @TransactionTypeChange VARCHAR(MAX),
        @DescriptionChange VARCHAR(MAX),
        @TrasactionCreateOnBeginDate DATE,
        @TransactionCreatedOnEndDate DATE,
        @TransactionUpdatedOnBeginDate DATE,
        @TransactionUpdateOnEndDate DATE,
        @ItemID VARCHAR(MAX)
    )
    AS
        SELECT TH.TransactionID
            ,  TH.IsReviewed
            ,  TH.ItemID
            ,  TH.CostPageNumber
            ,  TH.Comments
            ,  TH.CreatedBy
            ,  TH.CreatedDateTime
            ,  TH.UpdatedBy
            ,  TH.UpdatedDateTime
            ,  TH.TransactionDescription
            ,  TH.TransactionTypeID
            ,  IAccrualByItem.PROJCASE
            ,  IAccrualByItem.USTSTAT AS TransactionStatusID
            ,  TStatType.Name AS TransactionStatusTypeName
            ,  TStatType.[description] AS TransactionStatusTypeDescription
            ,  TType.Name AS TransactionTypeName
            ,  TType.[description] AS TransactionTypeDescription
            ,  COUNT(*) OVER () AS TotalCount
        FROM TransactionHistory AS TH
        JOIN TRVMVSDDVW001.INTERFACE_Files.dbo.DBATUSTA AS IAccrualByItem ON TH.TransactionID = CAST(IAccrualByItem.USTTRNNBR AS INT)
        LEFT JOIN dbo.TransctionStatusType AS TStatType ON TStatType.TransactionStatusTypeID= IAccrualByItem.USTSTAT
        LEFT JOIN dbo.TransactionType AS TType ON TType.TransactionTypeID = CAST(TH.TransactionTypeID AS INT)
        WHERE TStatType.Name = @StatusSelection
            AND TH.IsReviewed = @isReviewed
            AND IAccrualByItem.PROJCASE = @ProjectCaseNumber
            AND TH.CostPageNumber = @CostPageNumber
            AND TH.TransactionDescription = @TransactionTypeChange
            AND TType.[description] = @DescriptionChange
            AND TH.CreatedDateTime BETWEEN @TrasactionCreateOnBeginDate AND @TransactionCreatedOnEndDate
            AND TH.UpdatedDateTime BETWEEN @TransactionUpdatedOnBeginDate AND @TransactionUpdateOnEndDate
            AND TH.StatusID = 1
        GROUP BY
              TH.TransactionID
            , TH.IsReviewed
            , TH.ItemID
            , TH.CostPageNumber
            , TH.Comments
            , TH.CreatedBy
            , TH.CreatedDateTime
            , TH.UpdatedBy
            , TH.UpdatedDateTime
            , TH.TransactionDescription
            , TH.TransactionTypeID
            , IAccrualByItem.PROJCASE
            , TransactionStatusID
            , TStatType.Name
            , TStatType.[description]
            , TType.Name
            , TType.[description]
        ORDER BY 
              TH.TransactionID
            , TH.ItemID
            , TH.CostPageNumber
        OFFSET (@OffSetRowNo - 1) * @FetchRowNo ROWS FETCH NEXT @FetchRowNo ROWS ONLY
    

    更新#1:

    クエリを実行する前に、このオプションを設定してください-

    SET DATEFORMAT dmy
    

    または、より望ましいのは、ISOを使用することです。 フォーマットyyyymmdd -

    EXEC @return_value = [dbo].[tp_SelectTransactionHistorySearch]
        ...
        @TrasactionCreateOnBeginDate = '20130310',
        @TransactionCreatedOnEndDate = '20132003',
        @TransactionUpdatedOnBeginDate = '20130520',
        @TransactionUpdateOnEndDate = '20130604',
        @ItemID = NULL
    

    更新#2:

    DECLARE @temp TABLE
    (
        string VARCHAR(10)
    )
    
    SET DATEFORMAT dmy 
    
    INSERT INTO @temp (string)
    VALUES 
        ('10-03-2013'),
        ('20-03-2013'),
        ('20-05-2013'),
        ('04-06-2013')
    
    SELECT CAST(string AS DATE) 
    FROM @temp
    


    1. Oracleのlike演算子で[specifier]を使用することはできませんか?

    2. phpでデータベースからデータをエクスポートし、Excelエクスポートのファイル形式はWindows97-2003ワークブックのようにする必要があります

    3. SQLステートメントでmysqliをDELIMITERと連携させる方法は?

    4. MySQLワークベンチテーブルデータインポートウィザードが非常に遅い