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

如何基于SQL Server日期参数统计代理首3个月生产数据?

解决方案:基于代理开通日期筛选首3个月生产数据

针对你的需求,我们可以通过行转列结合日期函数的方式,轻松实现用@Date参数来限定查询范围的报表。以下是具体的SQL实现思路和代码:

核心思路

  1. 把每个代理的3个月产量数据从宽表(3列)转换成窄表(3行),让每条记录对应一个月的生产数据;
  2. 通过DATEADD函数计算每个代理首3个月的准确月份;
  3. 用@Date参数筛选出目标月份/时间段内的生产数据。

代码实现(按目标月份查询)

这个例子会返回所有在指定月份处于首3个月的代理及其对应产量:

-- 定义目标月份参数,这里可以替换成任意日期,会自动匹配当月
DECLARE @TargetMonth DATE = '2017-06-01';
-- 统一转换为当月第一天,避免日期偏差
SET @TargetMonth = DATEFROMPARTS(YEAR(@TargetMonth), MONTH(@TargetMonth), 1);

SELECT 
    fAgent AS 代理名称,
    -- 格式化月份为你需要的样式(比如June-17)
    DATENAME(MONTH, FirstThreeMonth) + '-' + RIGHT(YEAR(FirstThreeMonth), 2) AS 月份,
    Production AS 产量
FROM (
    SELECT 
        fAgent,
        -- 计算首3个月的日期:开通日期+1/2/3个月
        DATEADD(MONTH, rn, fOpenDate) AS FirstThreeMonth,
        -- 匹配对应月份的产量
        CASE rn
            WHEN 1 THEN fMonth1
            WHEN 2 THEN fMonth2
            WHEN 3 THEN fMonth3
        END AS Production
    FROM YourTableName -- 替换成你的实际表名
    -- 用CROSS APPLY把3列数据拆成3行
    CROSS APPLY (VALUES (1), (2), (3)) AS Months(rn)
) AS AgentMonthlyData
-- 筛选目标月份的记录
WHERE FirstThreeMonth >= @TargetMonth 
  AND FirstThreeMonth < DATEADD(MONTH, 1, @TargetMonth);

扩展:按日期范围查询

如果你需要统计某个时间段内所有代理的首3个月数据,只需要修改WHERE条件即可:

DECLARE @StartDate DATE = '2017-03-01';
DECLARE @EndDate DATE = '2017-05-31';

SELECT 
    fAgent AS 代理名称,
    DATENAME(MONTH, FirstThreeMonth) + '-' + RIGHT(YEAR(FirstThreeMonth), 2) AS 月份,
    Production AS 产量
FROM (
    SELECT 
        fAgent,
        DATEADD(MONTH, rn, fOpenDate) AS FirstThreeMonth,
        CASE rn
            WHEN 1 THEN fMonth1
            WHEN 2 THEN fMonth2
            WHEN 3 THEN fMonth3
        END AS Production
    FROM YourTableName
    CROSS APPLY (VALUES (1), (2), (3)) AS Months(rn)
) AS AgentMonthlyData
WHERE FirstThreeMonth BETWEEN @StartDate AND @EndDate;

说明

  • 代码中的YourTableName需要替换成你的实际数据表名;
  • DATENAME(MONTH, ...)会返回英文月份名,如果你需要中文可以调整为对应语言的格式(取决于你使用的SQL数据库版本);
  • 所有日期计算都基于开通日期的月份偏移,完全匹配你给出的代理A/B/C的首3个月规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:12:21