Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / сумма по последним записям по ID / 13 сообщений из 13, страница 1 из 1
17.04.2019, 15:20
    #39802877
mifo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сумма по последним записям по ID
Добрый день,

есть вопрос по скрипту SQL:
есть таблица Stock, в ней есть условно 3 столбца: дата изменения Date, номер товара ID, остаток Rest_Qty.
ID на разные даты повторяются, так как это таблица, хранящая последнюю перезапись остатка.

Задача - посчитать сумму остатка на сегодня, то бишь на последнюю для каждого ID дату,

помогите плиз
...
Рейтинг: 0 / 0
17.04.2019, 15:29
    #39802885
londinium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сумма по последним записям по ID
mifo,
как-то так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
WITH LASTMOV AS
(
  SELECT WARE_ID,TRANDATE,REST_QTY,
   ROW_NUMBER()OVER(PARTITION BY WARE_ID ORDER BY TRANDATE DESC)AS XCOL
    FROM STOCK
)
SELECT L.WARE_ID,L.REST_QTY
FROM LASTMOV AS L
WHERE L.XCOL=1
...
Рейтинг: 0 / 0
17.04.2019, 15:46
    #39802902
mifo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сумма по последним записям по ID
londiniummifo,
как-то так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
WITH LASTMOV AS
(
  SELECT WARE_ID,TRANDATE,REST_QTY,
   ROW_NUMBER()OVER(PARTITION BY WARE_ID ORDER BY TRANDATE DESC)AS XCOL
    FROM STOCK
)
SELECT L.WARE_ID,L.REST_QTY
FROM LASTMOV AS L
WHERE L.XCOL=1



londinium, спасибо,
но выдает ошибку: Msg 102, Level 15, State 1, Line 13
Incorrect syntax near ')'.
Это в строке, где ROW_NUMBER
...
Рейтинг: 0 / 0
17.04.2019, 15:47
    #39802903
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сумма по последним записям по ID
select @@version покажите
...
Рейтинг: 0 / 0
17.04.2019, 15:50
    #39802905
mifo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сумма по последним записям по ID
Гавриленко Сергей Алексеевич,

WITH LASTMOV AS
(
SELECT Stock.ItemID, Stock.Date, Stock.RestFactQty),
ROW_NUMBER() OVER(PARTITION BY Stock.ItemID ORDER BY Stock.Date DESC)AS XCOL
FROM Stock
)
SELECT L.Stock.ItemID,L.Stock.RestFactQty
FROM LASTMOV AS L
WHERE L.XCOL=1
...
Рейтинг: 0 / 0
17.04.2019, 16:02
    #39802914
Посетитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сумма по последним записям по ID
mifo
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
WITH LASTMOV AS
(
  SELECT Stock.ItemID, Stock.Date, Stock.RestFactQty ),
   ROW_NUMBER() OVER(PARTITION BY Stock.ItemID ORDER BY Stock.Date DESC)AS XCOL
    FROM Stock
)
SELECT L.Stock.ItemID,L.Stock.RestFactQty
FROM LASTMOV AS L
WHERE L.XCOL=1
...
Рейтинг: 0 / 0
17.04.2019, 16:07
    #39802919
mifo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сумма по последним записям по ID
Посетитель,

спасибо!
...
Рейтинг: 0 / 0
18.04.2019, 12:24
    #39803264
mifo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сумма по последним записям по ID
londiniummifo,
как-то так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
WITH LASTMOV AS
(
  SELECT WARE_ID,TRANDATE,REST_QTY,
   ROW_NUMBER()OVER(PARTITION BY WARE_ID ORDER BY TRANDATE DESC)AS XCOL
    FROM STOCK
)
SELECT L.WARE_ID,L.REST_QTY
FROM LASTMOV AS L
WHERE L.XCOL=1




еще раз проверил, все выводится корректно по последней дате, кроме остатка, он почему-то тянется не с последней записи,
сможете помочь?
...
Рейтинг: 0 / 0
18.04.2019, 12:27
    #39803265
Посетитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сумма по последним записям по ID
[quote mifo]londiniummifo,
как-то так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
WITH LASTMOV AS
(
  SELECT WARE_ID,TRANDATE,REST_QTY,
   ROW_NUMBER()OVER(PARTITION BY WARE_ID ORDER BY TRANDATE DESC)AS XCOL
    FROM STOCK
)
SELECT L.WARE_ID,L.REST_QTY
FROM LASTMOV AS L
WHERE L.XCOL=1




Всё, это что?
в указанном примере 2 поля
ID и REST_Qty
и они оба для каждой строки гарантированно тянутся из одной записи

видимо, у вас какой то другой запрос
...
Рейтинг: 0 / 0
18.04.2019, 12:29
    #39803268
mifo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сумма по последним записям по ID
Посетитель,
я еще добавил дату, дата берется последняя, а вот остаток Rest_Qty тянется не с последней даты
...
Рейтинг: 0 / 0
18.04.2019, 12:30
    #39803269
londinium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сумма по последним записям по ID
автореще раз проверил, все выводится корректно по последней дате, кроме остатка, он почему-то тянется не с последней записи
Возможно.
показывайте пример данных и что пошло не так
Пример очень желательно в виде
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
WITH CTE AS
(
  SELECT 1 AS ITEM_ID,'20190101'AS TRANDATE,15  AS RestFactQty
     UNION ALL
  SELECT 2 AS ITEM_ID,'20190228'AS TRANDATE,18 AS RestFactQty
    UNION ALL
  SELECT 1 AS ITEM_ID,'20190308'AS TRANDATE,60 AS RestFactQty
)
...
Рейтинг: 0 / 0
18.04.2019, 12:31
    #39803271
Посетитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сумма по последним записям по ID
mifoПосетитель,
я еще добавил дату, дата берется последняя, а вот остаток Rest_Qty тянется не с последней даты

ну так приведите код и пример данных на которых код выдает не то, что нужно.
...
Рейтинг: 0 / 0
18.04.2019, 13:13
    #39803308
mifo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сумма по последним записям по ID
londinium,

сорри, нашел у себя ошибку, все корректно
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / сумма по последним записям по ID / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]