Я использую SQL Server 2005. У меня есть таблица с именем Product. Теперь мне нужно узнать цену товара на данный месяц. Какой бы ни была цена товара в конце месяца, на самом деле это цена. Чтобы сделать сценарий более понятным, у меня есть пример ниже:
CREATE TABLE Product(ProductID int, Product Varchar(50), Price Decimal(5,2), FromDate DateTime, ToDate Datetime);
Данные могут выглядеть следующим образом:
INSERT INTO Product(ProductID, Product, Price, FromDate, ToDate)
SELECT 1,Pen,2.99,'01/15/2011','03/25/2011'
UNION
SELECT 2,Pen,3.99,'03/25/2011','05/02/2011'
UNION
SELECT 3,Pen,4.99,'05/02/2011',NULL
Теперь здесь текущая цена Pen равна 4.99, потому что ее ToDate по-прежнему нулевая. Сейчас цена пера составляет 2,99 в месяце январь и февраль. 25 марта цена ручки изменена на 3,99, поэтому цена ручки в марте составляет 3,99. Цена на ручку снова изменилась в мае до 4,99. Таким образом, цена пера в мае и вперед - май.
Теперь мне нужно написать скрипт sql, который даст мне цену продукта за данный месяц. Любая помощь будет оценена.