You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SQL复制行并偏移日期扩展供应链预测模型?

解决方案

要实现你的需求,有两种简单的SQL写法,适合基础薄弱的场景快速上手:

方法1:用UNION ALL逐次拼接(直观易懂)

直接把原数据、加1年、加2年、加3年的结果拼接起来,同时添加对应的年份标签:

-- 原年份(标记为'0')
SELECT
  delivery_date,
  component_type,
  qty,
  [other columns],
  '0' AS forecast_year
FROM [Table]

UNION ALL

-- 加1年(标记为'1')
SELECT
  DATEADD(year, 1, delivery_date) AS delivery_date,
  component_type,
  qty,
  [other columns],
  '1' AS forecast_year
FROM [Table]

UNION ALL

-- 加2年(标记为'2')
SELECT
  DATEADD(year, 2, delivery_date) AS delivery_date,
  component_type,
  qty,
  [other columns],
  '2' AS forecast_year
FROM [Table]

UNION ALL

-- 加3年(标记为'3')
SELECT
  DATEADD(year, 3, delivery_date) AS delivery_date,
  component_type,
  qty,
  [other columns],
  '3' AS forecast_year
FROM [Table]

*注意:不同数据库的日期加法函数写法有差异:

  • MySQL用DATE_ADD(delivery_date, INTERVAL 1 YEAR)
  • PostgreSQL用delivery_date + INTERVAL '1 YEAR'*

方法2:用交叉连接(更简洁,适合后续扩展)

先定义一个包含年份偏移量和标签的临时集合,再和原表交叉连接,一次性生成所有结果:

-- SQL Server写法
SELECT
  DATEADD(year, y.offset_years, t.delivery_date) AS delivery_date,
  t.component_type,
  t.qty,
  t.[other columns],
  CAST(y.offset_years AS VARCHAR(1)) AS forecast_year
FROM [Table] t
CROSS JOIN (
  VALUES (0), (1), (2), (3)
) y(offset_years)

-- MySQL写法
SELECT
  DATE_ADD(t.delivery_date, INTERVAL y.offset_years YEAR) AS delivery_date,
  t.component_type,
  t.qty,
  t.[other columns],
  CAST(y.offset_years AS CHAR(1)) AS forecast_year
FROM [Table] t
CROSS JOIN (
  SELECT 0 AS offset_years UNION ALL
  SELECT 1 UNION ALL
  SELECT 2 UNION ALL
  SELECT 3
) y

-- PostgreSQL写法
SELECT
  t.delivery_date + INTERVAL y.offset_years || ' YEAR' AS delivery_date,
  t.component_type,
  t.qty,
  t.[other columns],
  CAST(y.offset_years AS VARCHAR(1)) AS forecast_year
FROM [Table] t
CROSS JOIN (
  VALUES (0), (1), (2), (3)
) y(offset_years)

这种写法的好处是如果后续需要增加更多年份(比如加4年),只需要在临时集合里加一行即可,不用重复写SELECT语句。

内容的提问来源于stack exchange,提问作者vjr2109

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 20:52:19