SQL для поиска прогонов совпадающих значений - PullRequest
1 голос
/ 16 сентября 2010

У меня есть следующая таблица, которая называется [Store_Sales] -

Store     Date     Sales
    1     23/04    10000
    2     23/04    11000
    1     22/04    10000
    2     22/04    10500
    1     21/04    10000
    2     21/04    10550

Мне нужен SQL, который будет возвращать «прогон» аналогичных значений в столбце «Продажи» для определенного магазина. Например, из приведенной выше таблицы будет возвращено хранилище 1 для 23-го, 22-го и 21-го, поскольку все они имеют одинаковое значение (10 000).

Я использую SQL Server 2008.

1 Ответ

3 голосов
/ 16 сентября 2010

Посмотрите на что-то вроде этого (полный пример)

DECLARE @Store_Sales TABLE(
        Store INT,
        Date DATETIME,
        Sales FLOAT
)

INSERT INTO @Store_Sales SELECT 1,'23 Apr 2010',10000 
INSERT INTO @Store_Sales SELECT 2,'23 Apr 2010',11000 
INSERT INTO @Store_Sales SELECT 1,'22 Apr 2010',10000 
INSERT INTO @Store_Sales SELECT 2,'22 Apr 2010',10500 
INSERT INTO @Store_Sales SELECT 1,'21 Apr 2010',10000 
INSERT INTO @Store_Sales SELECT 2,'21 Apr 2010',10550 

SELECT  ss.Store,
        MIN(ss.Date) StartDate,
        MAX(ssNext.Date) EndDate,
        ss.Sales
FROM    @Store_Sales ss INNER JOIN
        @Store_Sales ssNext ON  ss.Store = ssNext.Store
                            AND ss.Date + 1 = ssNext.Date
                            AND ss.Sales = ssNext.Sales
GROUP BY    ss.Store,
            ss.Sales
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...