问题
问答题
数据库中有Table_priceHistory表,结构如下表所示:
字段 | 字段名 | 数据类型 | 可否为空 | 单位 | 备注 |
ID | 商品编号 | VARCHAR(8) | 不允许 | 主码 | |
GoodsName | 商品名称 | VARCHAR(20) | 不允许 | ||
StartDate | 价格生效日期 | DATETIME | 不允许 | 主码 | |
EndDate | 价格失效日期 | DATETIME | 不允许 | 主码,晚于StartDate | |
SaleUnitPrice | 单价 | MONEY | 不允许 | 元 |
②现要查询单价最高的前三种商品的商品编号、商品名称和单价(使用TOP语句)。
答案
参考答案:①CREATE TABLE Table PriceHistorv(ID varchar(8)NOT NULL,GoodsName varchar(20)NOT NULL,StartDate datetime NOT NULL,EndDate datetime NOT NULL,SaleUnitPrice Money NOT NULL,CHECK(EndDate>StartDate),PRIMARY KEY(ID,StartDate,EndDate))
SELECT TOP 3 WITH TIES ID,GoodsName,SaleUnitPrice
FROM Table_PriceHistory a JOIN Table_PriceHistory b ON a.ID=b.ID
ORDER BY SaleUnitPrice DESE