我正在使用SQL Server 2005.我有一个名为Product的表。现在我需要找出某个月某个产品的价格。无论月底产品的价格是多少,都是价格。为了使场景更清楚,我有下面的例子:SQL Server显示历史数据
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
现在这里,笔目前的价格是4.99,因为它的TODATE仍然是空。现在1月份和2月份Pen的价格为2.99。 3月25日笔的价格变为3.99,所以3月份笔的价格为3.99。笔的价格在五月份再次改为4.99。所以5月份和5月份笔的价格是5月份。
现在,我需要编写一个sql脚本,它会给我给定月份的产品价格。任何帮助,将不胜感激。
Fromdate可能是NULL吗? – Sparky
看到这个:http://data.stackexchange.com/stackoverflow/s/2167/get-current-price –
没有Fromdate永远不会是NULL – niceApp