首页 > 解决方案 > 如何编写此 MSSQL 数据库查询?

问题描述

我有一个特定的场景,我必须根据一些给定的排列和组合规则分配适用于某些 Car Leads 的折扣。

为了详细解释,我有这两个表:

下表包含车辆所有线索的一些原始数据

和:

下表包含所有折扣的规则(排列和组合)

我想要的是根据潜在客户规则中匹配的最大变量数从规则中获得最佳规则。

我该如何为此编写SQL?

标签: sql-serverdatabase

解决方案


像这样的东西?

SELECT ld.Make, ld.FuelType, MAX(p.Discount)
FROM LeadData ld
  LEFT JOIN Permutation p on (ld.City = p.City OR p.City IS NULL) AND (p.FuelType = ld.FuelType OR p.FuelType IS NULL) AND (ld.Make = p.Make)
GROUP BY ld.Make, ld.FuelType

推荐阅读