Параметр не работает как жестко закодированное значение - PullRequest
0 голосов
/ 27 сентября 2019

Просто переписываем некоторые коды SQL и просто тестируем результаты.Когда я запускаю запрос с жестко закодированными фильтрами, он запускается, но когда я использую переменную, он никогда не запускается или, по крайней мере, в то время, когда я ожидаю запрос с жестко закодированным фильтром.

Может кто-нибудь, пожалуйста, помогите мнеили объясните что не так.

-- THIS DOESN'T RUN
DECLARE @PortfolioCode INT = 519 
    , @ReportDate DATETIME = '2019-09-19' 

SELECT 
    TCSELL.RemainingQuantityPerc
    , SomeVal1 = TCBUY.SettleAmountTranCcy    * TCSELL.RemainingQuantityPerc
    , SomeVal2 = TCBUY.SettleAmountSettCcy * TCSELL.RemainingQuantityPerc
    , TCSELL.*
FROM     
    dbo._Dolfin_vwTradeCost TCBUY
        INNER JOIN dbo._Dolfin_vwTradeSellRunningQty TCSELL
        ON TCBUY.PortfolioCode = TCSELL.PortfolioCode
        AND TCBUY.TitleCode = TCSELL.TitleCode
        AND TCBUY.DocNo = TCSELL.DocNo
        AND TCSELL.RunningQuantity > 0
WHERE 1 = 1
    AND TCBUY.PortfolioCode = @PortfolioCode
    AND TCSELL.ReportDate = @ReportDate


-- THIS WORKS
SELECT 
    TCSELL.RemainingQuantityPerc
    , SomeVal1 = TCBUY.SettleAmountTranCcy    * TCSELL.RemainingQuantityPerc
    , SomeVal2 = TCBUY.SettleAmountSettCcy * TCSELL.RemainingQuantityPerc
    , TCSELL.*
FROM     
    dbo._Dolfin_vwTradeCost TCBUY
        INNER JOIN dbo._Dolfin_vwTradeSellRunningQty TCSELL
        ON TCBUY.PortfolioCode = TCSELL.PortfolioCode
        AND TCBUY.TitleCode = TCSELL.TitleCode
        AND TCBUY.DocNo = TCSELL.DocNo
        AND TCSELL.RunningQuantity > 0
WHERE 1 = 1
    AND TCBUY.PortfolioCode = 519
    AND TCSELL.ReportDate = '2019-09-19'

1 Ответ

0 голосов
/ 27 сентября 2019

Пожалуйста, проверьте, какой тип данных столбца ReportDate в таблице или представлении называется dbo._Dolfin_vwTradeSellRunningQty (который имеет псевдоним TCSELL).

Если тип данных является DateTime, то это должно быть в порядке.Если это какая-то строка (например, Varchar или Char), вы также должны изменить переменную @ReportDate на этот тип данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...