【发布时间】:2020-02-10 08:11:57
【问题描述】:
我对这个我必须在 sql 中执行的算法有点坚持。 我在表格中有产品代码、产品名称、供应商和产品更新日期。 我需要根据情况按供应商和日期对产品进行优先级排序。例如,如果一个产品有 1,2 和/或 3 作为供应商,则必须选择更新率最高的产品。 但如果产品有供应商4、5和/或6,则必须选择供应商编号最少的产品。
如果查询大于或等于 1,则在游标中进行此查询,将行中的第一个数据插入到另一个表中。这是我目前拥有的
SELECT @QUERY = count (*) from (
SELECT TOP 1
code_product,update_date,supplier,name_product
FROM Product_updates
WHERE ( supplier = 1 OR supplier =2 OR supplier = 3 ) and code_product
= @code_product and code_product is not null
order by update_date DESC
) a
实际例子,这里是表格
code_product name_product supplier update_date
1313 A 1 11-03-2019
1313 A 3 12-10-2019
1313 A 2 11-10-2019
1313 A 6 13-10-2019
1515 B 5 13-10-2019
1515 B 4 13-02-2018
1515 B 6 15-04-2019
和预期的结果
code_product name_product supplier update_date
1313 A 3 12-10-2019
1515 B 4 13-02-2018
请帮忙,问候。
【问题讨论】:
-
“最少供应商数量”是什么意思?这些数字是供应商或等级的 ID?
-
@mohkamfer 是一个行列
-
为什么不直接通过其他供应商订购?按升序排列。所以它变成了 ORDER BY update_date DESC,供应商 ASC
标签: sql sql-server performance stored-procedures cursor