【问题标题】:SQL Server x10 Quantity checkSQL Server x10 数量检查
【发布时间】:2018-12-11 10:59:00
【问题描述】:

我有一个包含 Article_code、Date 和 Quantity 的表格。

我试图找出同一篇文章的数量与前一个日期相比增加或减少了 10 倍的地方。

例如,我有以下几列

Article  Date Quantity X10     
1001     20-01-2015 22    
1001    21-02-2016 220

对于数量为 220 的行应在 x10 列中标记为 x。

我尝试的是以下

UPDATE ph
SET [X10] = 'Px10'
FROM 
    [dbo].[Sales] ph 
    inner join [dbo].[Sales] t on (ph.[Article] = t.[Article]) 
WHERE
    ph.[quantity] / t.[quantity] = 10
    OR
    t.[quantity] / ph.[quantity] = 10;

【问题讨论】:

    标签: sql sql-server-2005


    【解决方案1】:

    尝试以下方法:

    select *,
    case when exists
    (
        select 1
        from yourtable t2
        where dateadd(day,-1,t1.[Date])=t2.[Date]
        and t1.Quantity>=10*t2.Quantity
    ) then 'x' else '' end as 'x10'
    from youttable t1
    

    【讨论】:

      【解决方案2】:

      试试这个。

      UPDATE s
      SET    s.x10 = 'x'
      FROM   Sales s
             OUTER APPLY (   SELECT   TOP 1 quantity
                             FROM     sales s2
                             WHERE    s2.Article_code = s.Article_code
                                      AND s2.date < s.date
                             ORDER BY s2.date DESC ) t
      WHERE  s.quantity = 10 * t.quantity;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-05
        • 1970-01-01
        • 2010-09-07
        • 1970-01-01
        • 1970-01-01
        • 2012-05-08
        • 1970-01-01
        相关资源
        最近更新 更多