以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
为了根据物料和日期匹配ic_general_b表的成本价,我们需要执行以下步骤:
- 从WJ_View_CDBJCPCQTRBB视图中选取物料编码(FNUMBER)和日期(FDATE)。
- 使用这些信息来查询ic_general_b表,找到对应物料在给定日期或之前的最新成本价。
- 将找到的成本价添加到WJ_View_CDBJCPCQTRBB视图的相应位置。
以下是实现这一操作的SQL语句:
SELECT WJ_View_CDBJCPCQTRBB.*, ic_general_b.CostPrice
FROM WJ_View_CDBJCPCQTRBB
LEFT JOIN ic_general_b ON WJ_View_CDBJCPCQTRBB.FNUMBER = ic_general_b.ItemCode
WHERE ic_general_b.Date <= WJ_View_CDBJCPCQTRBB.FDATE
ORDER BY WJ_View_CDBJCPCQTRBB.FNUMBER, WJ_View_CDBJCPCQTRBB.FDATE DESC;
这个SQL语句首先从WJ_View_CDBJCPCQTRBB视图中选择所有列,然后通过LEFT JOIN将ic_general_b表连接到视图上,基于物料编码(FNUMBER/ItemCode)进行匹配。我们只选择那些日期小于等于视图中日期的成本价记录。最后,我们按物料编码和日期降序排序,以确保每个物料编码获取的是最新的成本价。
请注意,这个查询假设ic_general_b表中的Date列是日期类型,并且已经按照物料编码和日期进行了索引,以优化性能。如果实际情况不是这样,可能需要对数据库进行相应的调整。