【发布时间】:2018-02-09 21:54:24
【问题描述】:
我有一个使用多值参数的报表,在 SQL 中运行时可以毫无问题地提取数据。当在存储过程中应用并通过 SSRS 处理并在选择多个值时启用“允许多值”时,报告不返回任何数据。与其他用户一样,如果我选择单个值,报告将返回数据。
我做了一些功课并尝试增加我的参数值,但这也没有帮助。
请参阅下面的查询。有问题的参数是@material 参数。
With Zone as
(Select
name,
id
From datex_Footprint.LocationContainersView
Where
typename IN ('Zone', 'Area')
)
SELECT inv.projectId,
inv.projectName,
inv.materialLookupCode,
inv.materialDescription,
CASE
WHEN sn.id IS NULL
THEN inv.totalPackagedAmount
ELSE 1
END AS totalPackagedAmount,
inv.licensePlateLookupCode,
z.name WarehouseZone,
inv.locationName,
sn.id serialNumberId,
sn.lookupCode,
udf.SerialRef1,
udf.SerialRef2,
udf.SerialRef3,
udf.SerialRef4,
udf.SerialRef5
FROM datex_footprint.InventoryDetailedViewByLicensePlateLot inv
LEFT OUTER JOIN datex_footprint.SerialNumbers sn ON sn.lotId = inv.lotId
AND sn.licensePlateId = inv.licensePlateId
AND sn.archived = 'False'
LEFT OUTER JOIN datex_footprint.SerialNumbersUdfs udf ON udf.id = sn.id
INNER JOIN datex_footprint.LocationContainersView lcv ON lcv.id = inv.locationId
INNER JOIN datex_footprint.locationcontainers LC ON LC.id = lcv.id
INNER JOIN Zone z ON z.id = LC.parentid
WHERE inv.projectName IN(@projectName)
AND inv.materialLookupCode IN(@material)
AND (inv.locationName IN(@locationName)
OR (@locationName IS NULL));
【问题讨论】:
-
您是否将@material 传递给存储过程参数?
-
是的。虽然我认为艾伦斯科菲尔德一针见血。我认为删除 SP 并直接在数据集中运行查询将解决问题。将在周二再次报告。