添加多个多重选择

时间:2016-01-19 12:09:15

标签: sql reporting-services

基本上我已经有了使用相同前缀撤回所有订单的代码,但有一种方法可以添加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)

1 个答案:

答案 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