SQL Server x10 Проверка количества - PullRequest
0 голосов
/ 03 июля 2018

У меня есть таблица с артикулом, датой и количеством.

Я пытаюсь найти, где по той же статье количество увеличилось или уменьшилось в 10 раз по сравнению с предыдущей датой.

Например, у меня есть следующие столбцы

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

Для строки с количеством 220 следует отметить как x в столбце x10.

Я попробовал следующее

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;

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Попробуйте это.

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;
0 голосов
/ 03 июля 2018

Попробуйте следующее:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...