基本上我已经有了使用相同前缀撤回所有订单的代码,但有一种方法可以添加SSRS中多选订单名的选项,所以我也需要更改我的代码。即虽然代码已经可以撤回具有ABC前缀的订单,但我希望能够通过订单名称能够拉回许多订单。对于第一个版本,只显示具有订单前缀的任何策略,但我希望订单名称为Amy Jane或Betty Jane的所有订单
我正在尝试
DECLARE @order varchar (100)
set @order = 'Amy Jane' or 'Betty Jane'
SELECT OrderNoref,
OrderDate
FROM Ordertable
WHERE LEFT([OrderNoref],(SELECT MAX(LEN(OrderPrefix)) FROM Orders123 WHERE OrderName = @order)) IN (SELECT OrderPrefixFROM Orders123 WHERE OrderName= @order)
我想要的东西如下,但我遇到了问题
SELECT OrderNoref,
OrderDate
FROM Ordertable
WHERE LEFT([OrderNoref],(SELECT MAX(LEN(OrderPrefix)) FROM Orders123 WHERE OrderName = @order)) IN (SELECT OrderPrefixFROM Orders123 WHERE OrderName= @order)
AND (Select OrderName from Orders123) in (@Order)
答案 0 :(得分:1)
请参阅下面的代码,我已经更改了' AND'到OR并纠正语法。 这将使用订单名称或订单前缀
过滤数据 SELECT
OP.OrderName,
O.OrderNo,
O.OrderDate
FROM Ordertablev AS O
JOIN (
SELECT OrderPrefix, OrderName FROM Orders123 WHERE OrderName= 'Amy Jane' OR OrderName = 'Betty Jane'
) AS OP ON LEFT(O.OrderNo, LEN(OP.OrderPrefix)) = OP.OrderPrefix