код продукта повторяется в запросе
74
9
У меня есть эти таблицы
Продукт
IDProd || имя
Time_Price
IDPrice || IDProd || Цена || Время
запрос:
SELECT P.IDProd,P.Name,TP.Price,MAX(TP.Time)
FROM Product P INNER JOIN Time_Price TP ON P.IDProd=TP.IDProd
GROUP BY P.IDProd,P.Name,TP.Price
Мне нужно, чтобы код продукта не повторялся
спросил(а)
2013-09-10T05:28:00+04:00
7 лет, 4 месяца назад
добавить комментарий
пожаловаться
Решение
73
Это даст вам последнюю Price
за каждый продукт.
SELECT IDProd, Name,
IDPrice, Price, Time
FROM
(
SELECT a.IDProd, a.Name,
b.IDPrice, b.Price, b.Time,
ROW_NUMBER() OVER (PARTITION BY a.IDProd ORDER BY b.Time DESC) rn
FROM Product a
INNER JOIN Time_price b
ON a.IDProd = b.IDProd
) a
WHERE a.rn = 1
без использования оконной функции,
SELECT a.IDProd, a.Name,
b.IDPrice, b.Price, b.Time
FROM Product a
INNER JOIN Time_price b
ON a.IDProd = b.IDProd
INNER JOIN
(
SELECT IDProd, MAX(Time) Time
FROM Time_price
GROUP BY IDProd
) c ON b.IDProd = c.IDProd AND
b.Time = c.Time
ответил(а)
2013-09-10T05:32:00+04:00
7 лет, 4 месяца назад
добавить комментарий
пожаловаться
Ваш ответ
Еще в рубрике
119
Как создать запрос, который получает только данные, которые были обновлены в таблице
73
Ошибка подключения к SQL Server 2012 с VB.NET 2010
111
Чтение большой строки XML из инструкции TSQL FOR XML в С#.NET
60
Как импортировать пакет SSIS из файловой папки в каталогах сервисов интеграции?
- Вопросы
- Sql-server
- код продукта повторяется в запросе