新增文章
文章标题
分类
C#
云星空
K3 BOS
K3 功能
用友
Oracle
python
SQL
MySql
PHP
HTML
script
windows
Access
影视后期
财务
服务
生活
内容
有一张价目表,字段有:组织名称、物料名称、单位、单价、开始日期、结束日期 有一张明细表,字段有:组织名称、物料名称、单位、单价、日期 想将价目表的单价 填写到 明细表的单价, 关联关系为 组织名称、物料名称、单位 相同,日期 在 开始日期、结束日期 之间, 如果存在重复价格,取价目表的 最后一行 UPDATE d SET d.单价 = p.单价 FROM 明细表 d INNER JOIN ( SELECT *, ROW_NUMBER() OVER ( PARTITION BY 组织名称, 物料名称, 单位 ORDER BY 开始日期 DESC, 结束日期 DESC ) as rn FROM 价目表 WHERE 结束日期 >= (SELECT MIN(日期) FROM 明细表) -- 提前过滤 AND 开始日期 <= (SELECT MAX(日期) FROM 明细表) ) p ON d.组织名称 = p.组织名称 AND d.物料名称 = p.物料名称 AND d.单位 = p.单位 AND d.日期 BETWEEN p.开始日期 AND p.结束日期 AND p.rn = 1; -- 取最后一行
返回
保存