小编For*_*ine的帖子

T-sql:从表中选择最具体的匹配

为可怕的标题道歉。我想不出更好的方法来简要描述这个问题。

这是场景:

用户可以根据订单的客户、贷款类型、银行、定价区域和服务设置要附加到工作订单的服务说明。使用以下参数设置服务说明:

  1. 适用于所有客户或特定客户
  2. 适用于所有贷款类型或特定贷款类型
  3. 适用于所有银行或特定银行
  4. 适用于所有定价区域或特定定价区域
  5. 适用于特定服务

下面描述的 service_instruction 表的列中的值 1 等同于“全部”。

表结构(相关部分无论如何):

order (order_num INT PRIMARY KEY, client_num INT, loan_type INT, 
       bank_num INT, pricing_region INT)

work_order_line(work_order_line_num INT PRIMARY KEY, order_num INT, service_num INT,
                description TEXT)

service_instruction(instruction_num INT PRIMARY KEY, service_num INT,
                    service_description TEXT, client_num INT NULL,
                    bank_num INT NULL, region_num INT, loan_type_cd TINYINT) 
Run Code Online (Sandbox Code Playgroud)

我需要编写一个脚本,该脚本将为服务选择最具体的指令(如果存在)。例如:

用户已设置如下服务说明:

  1. (所有客户)、(所有贷款类型)、(所有银行)、(所有定价区域)、(服务 A)、说明:做工作 A
  2. (客户 1)、(所有贷款类型)、(所有银行)、(区域 3)、(服务 A)、说明:做工作 B

客户端 1、区域 3 和服务 A 的订单应附加“Do work B”。客户端 2、区域 3 和服务 A 的订单应附加“Do work A”。服务 …

sql-server query t-sql

5
推荐指数
1
解决办法
1523
查看次数

标签 统计

query ×1

sql-server ×1

t-sql ×1