weixin_57618007 2021-06-27 18:04 采纳率: 0%
浏览 40

求帮做sql的一个题

 

  • 写回答

1条回答 默认 最新

  • KopSeas 2021-06-29 14:34
    关注

    yearmonth 那一列的所有值改成标准日期格式为'yyyy-mm-dd'这样的格式(例如2020-04-01)

    SELECT c.dueDate
        , CASE 
            WHEN c.baseAmount - d.baseAmount IS NULL THEN c.baseAmount
            ELSE c.baseAmount - d.baseAmount
        END AS 同期增长值
        , CASE 
            WHEN (c.baseAmount - d.baseAmount) / c.baseAmount IS NULL THEN 1
            ELSE (c.baseAmount - d.baseAmount) / c.baseAmount
        END AS 同比
    FROM CumulativeCase c
        LEFT JOIN (
            SELECT a.baseAmount AS baseAmount, b.dueDate AS dueDate
            FROM CumulativeCase a
                JOIN CumulativeCase b ON LEFT(convert(nvarchar(25), a.dueDate, 120), 7) = LEFT(convert(nvarchar(25), dateadd(year, -1, b.dueDate), 120), 7)
        ) d
        ON LEFT(convert(nvarchar(25), c.dueDate, 120), 7) = LEFT(convert(nvarchar(25), d.dueDate, 120), 7)
    ORDER BY c.dueDate
        
    --问题2(环比)
    SELECT c.dueDate, c.baseAmount
        , CASE 
            WHEN (c.baseAmount - d.baseAmount) / c.baseAmount IS NULL THEN 1
            ELSE (c.baseAmount - d.baseAmount) / c.baseAmount
        END AS 环比
    FROM CumulativeCase c
        LEFT JOIN (
            SELECT a.baseAmount AS baseAmount, b.dueDate AS dueDate
            FROM CumulativeCase a
                JOIN CumulativeCase b ON LEFT(convert(nvarchar(25), a.dueDate, 120), 7) = LEFT(convert(nvarchar(25), dateadd(month, -1, b.dueDate), 120), 7)
        ) d
        ON LEFT(convert(nvarchar(25), c.dueDate, 120), 7) = LEFT(convert(nvarchar(25), d.dueDate, 120), 7)
    ORDER BY c.dueDate
        

    回答不易 望采纳

    评论

报告相同问题?

悬赏问题

  • ¥15 odoo17处理受托加工产品
  • ¥15 如何用MATLAB编码图三的积分
  • ¥15 为什么我安装了Homebrew之后,无法像官网的那样通过执行命令安装Watchman
  • ¥15 圆孔衍射光强随孔径变化
  • ¥15 MacBook pro m3max上用vscode运行c语言没有反应
  • ¥15 ESP-PROG配置错误,ALL ONES
  • ¥15 结构功能耦合指标计算
  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表