Просто переписываем некоторые коды 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'