sxbjxxr 2024-04-07 21:18 采纳率: 0%
浏览 3

写SQL语句计算采购指定日期前的移动加权平均单价

多次采购同一产品,数量不同价格有差异,如何写SQL语句计算采购指定日期前的移动加权平均单价??

采购日期 采购单价 采购物料编码 采购数量
2021-09-01 00:00:00.000 68.7168140000 11010101010001 1199.2000000000
2021-09-01 00:00:00.000 68.7168140000 11010101010001 1198.2000000000
2021-09-01 00:00:00.000 68.7168140000 11010101010001 1193.2000000000
2021-09-01 00:00:00.000 68.7168140000 11010101010001 1192.2000000000
2021-09-04 00:00:00.000 75.8761060000 11010101010001 1053.3000000000
2021-09-04 00:00:00.000 75.8761060000 11010101010001 1058.3000000000
2021-09-04 00:00:00.000 75.8761060000 11010101010001 1059.0000000000
2021-09-04 00:00:00.000 75.8761060000 11010101010001 1055.9000000000
2021-09-04 00:00:00.000 75.8761060000 11010101010001 846.6000000000
2021-09-04 00:00:00.000 75.8761060000 11010101010001 827.8000000000
2021-09-04 00:00:00.000 75.8761060000 11010101010001 828.5000000000
2021-09-04 00:00:00.000 75.8761060000 11010101010001 830.4000000000
2021-09-04 00:00:00.000 75.8761060000 11010101010001 831.8000000000
2021-09-04 00:00:00.000 75.8761060000 11010101010001 746.5000000000
2021-09-04 00:00:00.000 75.8761060000 11010101010001 748.9000000000
2021-09-14 00:00:00.000 77.0265490000 11010101010001 711.1000000000
2021-09-14 00:00:00.000 77.0265490000 11010101010001 771.0000000000
2021-09-14 00:00:00.000 77.0265490000 11010101010001 986.8000000000
2021-09-17 00:00:00.000 71.8407080000 11010101010001 1159.2000000000
2021-09-17 00:00:00.000 71.8407080000 11010101010001 1184.2000000000
2021-09-17 00:00:00.000 71.8407080000 11010101010001 1183.2000000000
2021-09-27 00:00:00.000 72.2743360000 11010101010001 401.5000000000
2021-09-27 00:00:00.000 71.8141590000 11010101010001 713.7000000000
2021-09-27 00:00:00.000 71.8141590000 11010101010001 1112.2000000000
2021-09-27 00:00:00.000 71.8141590000 11010101010001 1131.2000000000
2021-09-27 00:00:00.000 71.8141590000 11010101010001 1130.2000000000
2021-10-18 00:00:00.000 71.8407080000 11010101010001 514.2000000000
2021-10-18 00:00:00.000 71.1150440000 11010101010001 1169.2000000000
2021-10-18 00:00:00.000 71.1150440000 11010101010001 879.9000000000
2021-10-18 00:00:00.000 71.1150440000 11010101010001 1210.2000000000
2021-10-18 00:00:00.000 71.1150440000 11010101010001 906.9000000000
2021-11-15 00:00:00.000 0.0000010000 11010101010001 646.0000000000
2021-11-23 00:00:00.000 76.6371680000 11010101010001 4760.5000000000
2021-12-08 00:00:00.000 73.1504420000 11010101010001 1216.7000000000
2021-12-08 00:00:00.000 73.1504420000 11010101010001 1053.7000000000
2021-12-08 00:00:00.000 73.1504420000 11010101010001 1053.2000000000
2021-12-14 00:00:00.000 72.5132740000 11010101010001 1017.4000000000
2021-12-14 00:00:00.000 72.5132740000 11010101010001 1019.8000000000
2021-12-14 00:00:00.000 72.5132740000 11010101010001 1039.6000000000
2021-12-14 00:00:00.000 73.0884960000 11010101010001 1217.2000000000
2021-12-23 00:00:00.000 69.4867260000 11010101010001 691.1000000000
2021-12-28 00:00:00.000 69.4867260000 11010101010001 1614.3500000000
2021-12-28 00:00:00.000 72.2035400000 11010101010001 3.6500000000
2021-12-28 00:00:00.000 69.4867260000 11010101010001 2478.2000000000
2021-12-28 00:00:00.000 69.4867260000 11010101010001 422.7000000000
2021-12-28 00:00:00.000 69.4867260000 11010101010001 235.3000000000
2022-01-12 00:00:00.000 75.6460180000 11010101010001 2799.6000000000
2022-05-04 00:00:00.000 76.2035400000 11010101010001 2905.2200000000
2022-05-05 00:00:00.000 81.2831860000 11010101010001 149.9000000000
2022-05-27 00:00:00.000 78.4867260000 11010101010001 1355.9000000000
2022-05-27 00:00:00.000 78.4867260000 11010101010001 1234.0000000000
2022-05-27 00:00:00.000 78.4867260000 11010101010001 803.4000000000
2022-05-27 00:00:00.000 78.4867260000 11010101010001 928.7000000000
2022-05-27 00:00:00.000 78.4867260000 11010101010001 1486.6000000000
2022-05-27 00:00:00.000 76.9469030000 11010101010001 1489.7000000000
2022-05-27 00:00:00.000 76.9469030000 11010101010001 1262.6000000000
2022-05-27 00:00:00.000 76.9469030000 11010101010001 1264.7000000000
2022-05-27 00:00:00.000 78.4867260000 11010101010001 315.8000000000
2022-06-23 00:00:00.000 77.6283190000 11010101010001 310.4500000000
2022-06-23 00:00:00.000 77.6283190000 11010101010001 4221.1000000000
2022-06-23 00:00:00.000 76.9469030000 11010101010001 2795.0500000000
2022-06-23 00:00:00.000 77.6283190000 11010101010001 129.7500000000
2022-08-05 00:00:00.000 70.1769910000 11010101010001 1190.6500000000
2022-09-28 00:00:00.000 70.1769910000 11010101010001 191.4000000000
2022-11-16 00:00:00.000 68.8761060000 11010101010001 2329.1000000000
2023-02-02 00:00:00.000 69.1238940000 11010101010001 4990.2000000000
2023-02-17 00:00:00.000 71.2035400000 11010101010001 1119.4700000000
2023-02-17 00:00:00.000 71.2743360000 11010101010001 1191.1700000000
2023-03-13 00:00:00.000 71.0442480000 11010101010001 8851.6000000000
2023-04-20 00:00:00.000 71.4159290000 11010101010001 634.7400000000
2023-04-20 00:00:00.000 71.4159290000 11010101010001 1153.1000000000
2023-04-20 00:00:00.000 71.4159290000 11010101010001 1159.3000000000
2023-05-11 00:00:00.000 73.8053100000 11010101010001 3740.5000000000
2023-06-02 00:00:00.000 71.7433630000 11010101010001 2802.1000000000
2023-06-14 00:00:00.000 71.4690270000 11010101010001 1084.1000000000
2023-06-20 00:00:00.000 69.4513270000 11010101010001 2067.5000000000
2023-07-18 00:00:00.000 70.6460180000 11010101010001 6186.4000000000
2023-08-14 00:00:00.000 71.6371680000 11010101010001 3643.3000000000
2023-09-01 00:00:00.000 73.6637170000 11010101010001 5077.1900000000
2023-09-05 00:00:00.000 73.6637170000 11010101010001 3107.6000000000
2023-10-05 00:00:00.000 74.0176990000 11010101010001 909.1000000000
2023-10-11 00:00:00.000 73.0176990000 11010101010001 4147.4000000000
2023-10-11 00:00:00.000 73.2123890000 11010101010001 1181.7000000000
2023-11-02 00:00:00.000 72.5309730000 11010101010001 5452.9000000000

  • 写回答

3条回答 默认 最新

  • 码农阿豪 Java领域优质创作者 2024-04-07 21:18
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    首先,移动加权平均单价的计算公式为: 移动加权平均单价 = Σ(采购单价 × 采购数量)/ Σ采购数量 所以,我们需要先按照采购日期升序排序,然后依次计算每个采购记录的移动加权平均单价,最后返回指定日期前的移动加权平均单价,即最后一个采购记录的移动加权平均单价。 SQL语句如下:
    SELECT 
      SUM(采购单价 * 采购数量) / SUM(采购数量) AS 移动加权平均单价
    FROM 
      采购记录表 
    WHERE 
      采购日期 <= '指定日期'
    ORDER BY 
      采购日期 ASC;
    

    案例代码: Suppose we have a table called purchase_records and the SQL statement to create this table is as follows:

    CREATE TABLE purchase_records (
        采购日期 datetime,
        采购单价 decimal(18, 10),
        采购物料编码 varchar(20),
        采购数量 decimal(18, 10)
    );
    INSERT INTO purchase_records VALUES
        ('2021-09-01 00:00:00.000', 68.7168140000, '11010101010001', 1199.2000000000),
        ('2021-09-01 00:00:00.000', 68.7168140000, '11010101010001', 1198.2000000000),
        ('2021-09-01 00:00:00.000', 68.7168140000, '11010101010001', 1193.2000000000),
        ('2021-09-01 00:00:00.000', 68.7168140000, '11010101010001', 1192.2000000000),
        ('2021-09-04 00:00:00.000', 75.8761060000, '11010101010001', 1053.3000000000),
        ('2021-09-04 00:00:00.000', 75.8761060000, '11010101010001', 1058.3000000000),
        ('2021-09-04 00:00:00.000', 75.8761060000, '11010101010001', 1059.0000000000),
        ('2021-09-04 00:00:00.000', 75.8761060000, '11010101010001', 1055.9000000000),
        ('2021-09-04 00:00:00.000', 75.8761060000, '11010101010001', 846.6000000000),
        ('2021-09-04 00:00:00.000', 75.8761060000, '11010101010001', 827.8000000000),
        ('2021-09-04 00:00:00.000', 75.8761060000, '11010101010001', 828.5000000000),
        ('2021-09-04 00:00:00.000', 75.8761060000, '11010101010001', 830.4000000000),
        ('2021-09-04 00:00:00.000', 75.8761060000, '11010101010001', 831.8000000000),
        ('2021-09-04 00:00:00.000', 75.8761060000, '11010101010001', 746.5000000000),
        ('2021-09-04 00:00:00.000', 75.8761060000, '11010101010001', 748.9000000000),
        ('2021-09-14 00:00:00.000', 77.0265490000, '11010101010001', 711.1000000000),
        ('2021-09-14 00:00:00.000', 77.0265490000, '11010101010001', 771.0000000000),
        ('2021-09-14 00:00:00.000', 77.0265490000, '11010101010001', 986.8000000000),
        ('2021-09-17 00:00:00.000', 71.8407080000, '11010101010001', 1159.2000000000),
        ('2021-09-17 00:00:00.000', 71.8407080000, '11010101010001', 1184.2000000000),
        ('2021-09-17 00:00:00.000', 71.8407080000, '11010101010001', 1183.2000000000),
        ('2021-09-27 00:00:00.000', 72.2743360000, '11010101010001', 401.5000000000),
        ('2021-09-27 00:00:00.000', 71.8141590000, '11010101010001', 713.7000000000),
        ('2021-09-27 00:00:00.000', 71.8141590000, '11010101010001', 1112.2000000000),
        ('2021-09-27 00:00:00.000', 71.8141590000, '11010101010001', 1131.2000000000),
        ('2021-09-27 00:00:00.000', 71.8141590000, '11010101010001', 1130.2000000000),
        ('2021-10-18 00:00:00.000', 71.8407080000, '11010101010001', 514.2000000000),
        ('2021-10-18 00:00:00.000', 71.1150440000, '11010101010001', 1169.2000000000),
        ('2021-10-18 00:00:00.000', 71.1150440000, '11010101010001', 879.9000000000),
        ('2021-10-18 00:00:00.000', 71.1150440000, '11010101010001', 1210.2000000000),
        ('2021-10-18 00:00:00.000', 71.1150440000, '11010101010001', 906.9000000000),
        ('2021-11-15 00:00:00.000', 0.0000010000, '11010101010001', 646.0000000000),
        ('2021-11-23 00:00:00.000', 76.6371680000, '11010101010001', 4760.5000000000),
        ('2021-12-08 00:00:00.000', 73.1504420000, '11010101010001', 1216.7000000000),
        ('2021-12-08 00:00:00.000', 73.1504420000, '11010101010001', 1053.7000000000),
        ('2021-12-08 00:00:00.000', 73.1504420000, '11010101010001', 1053.2000000000),
        ('2021-12-14 00:00:00.000', 72.5132740000, '11010101010001', 1017.4000000000),
        ('2021-12-14 00:00:00.000', 72.5132740000, '11010101010001', 1019.8000000000),
        ('2021-12-14 00:00:00.000', 72.5132740000, '11010101010001', 1039.6000000000),
        ('2021-12-14 00:00:00.000', 73.0884960000, '11010101010001', 1217.2000000000),
        ('2021-12-23 00:00:00.000', 69.4867260000, '11010101010001', 691.1000000000),
        ('2021-12-28 00:00:00.000', 69.4867260000, '11010101010001', 1614.3500000000),
        ('2021-12-28 00:00:00.000', 72.2035400000, '11010101010001', 3.6500000000),
        ('2021-12-28 00:00:00.
    评论

报告相同问题?

问题事件

  • 创建了问题 4月7日

悬赏问题

  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。
  • ¥20 CST怎么把天线放在座椅环境中并仿真
  • ¥15 任务A:大数据平台搭建(容器环境)怎么做呢?