【问题标题】:How to get value for Min data only如何仅获取 Min 数据的价值
【发布时间】:2016-11-03 02:45:59
【问题描述】:

我的如下查询将得到如图所示的结果

SELECT Dept,
       Item,       
       Month,
       OpenQty,
       OpenVal
FROM   StockTransaction
WHERE  year = 2016 and
       month between 1 and 10

实际上我想要的结果是每个部门和项目的最小月份 将保持 openqtyopenval 值。除此之外将保持零值。

如何编写查询得到如上图的结果?

【问题讨论】:

    标签: sql sql-server sql-server-2008 sql-server-2005


    【解决方案1】:

    你可以使用窗口函数:

    SELECT Dept, Item, Month,
           (CASE WHEN row_number() over (partition by dept, item order by month) = 1
                 THEN OpenQty ELSE 0
            END) as OpenQty,
           (CASE WHEN row_number() over (partition by dept, item order by month) = 1
                 THEN OpenVal ELSE 0
            END) as OpenVal
    FROM StockTransaction
    WHERE year = 2016 and
          month between 1 and 10;
    

    【讨论】:

    • 帮了大忙! tq这么多
    猜你喜欢
    • 2021-09-22
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 2022-07-29
    • 2017-06-10
    • 2018-09-03
    相关资源
    最近更新 更多