Мне нужно показать ежемесячные данные инвентаризации - PullRequest
2 голосов
/ 28 октября 2010

У меня в таблице есть что-то вроде следующего для деталей инвентаризации.

InventoryTable.

InventoryTableID  DateCreated  quantity  ItemName
-------------------------------------------------
1                 2010-02-04   12        abc
2                 2010-03-10   4         abc
3                 2010-03-13   5         xyz
4                 2010-03-13   19        def
5                 2010-03-17   15        abc
6                 2010-03-29   15        abc
7                 2010-04-01   22        xyz
8                 2010-04-13   5         abc
9                 2010-04-15   6         def    

из приведенной выше таблицы, если мой администратор хочет знать данные инвентаризации за месяц апрель 2010 г. (т.е. 1 апреля 2010 г. - 30 апреля 2010 г.)

Мне нужен вывод, как показано ниже.

  1. инвентарь по состоянию на 1 апреля 2010

    ItemName  Datecreated   qty
    ----------------------------
    abc       2010-03-29    15
    xyz       2010-04-01    22
    def       2010-03-13    19
    
  2. инвентарь по состоянию на 30 апреля 2010 года

    ItemName  Datecreated  qty
    ---------------------------
    abc       2010-04-13   5
    xyz       2010-04-01   22
    def       2010-04-15   6
    

1 Ответ

3 голосов
/ 28 октября 2010

Для вашего первого набора результатов запустите с @YourDataParam = '2010-04-01'.Для второго набора используйте «2010-04-30».

;with cteMaxDate as (
    select it.ItemName, max(it.DateCreated) as MaxDate
        from InventoryTable it
        where it.DateCreated <= @YourDataParam
        group by it.ItemName
)
select it.ItemName, it.DateCreated, it.qty
    from cteMaxDate c
        inner join InventoryTable it
            on c.ItemName = it.ItemName
                and c.MaxDate = it.DateCreated
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...