使用DB2 UDB OLAP函数
2008-09-03 16:28:17 来源:WEB开发网由于某些原因,我们选择不在数据库中存储重复的记录。也就是说,我们希望只存储一条记录 (’ENGLISH BAGELS 6-PACK’, 1.49, 2) ,而不是两条记录 (’ENGLISH BAGELS 6-PACK’, 1.49) 。
不存储重复行通常可以带来更多方便。因此,我们应该使用下面这样的表:
createTABLESALE_ITEM(
SALE_IDINTNOTNULL,
ITEM_NAMEVARchar(30)NOTNULL,
ITEM_QUANTITYSMALLINTNOTNULL,
PRICE_PER_ITEMFLOATNOTNULL);
insertINTOSALE_ITEMVALUES
(1,’NESCAFECLASSIC’,1,6.49),
(1,’ENGLISHBAGELS6-PACK’,2,1.49),
(1,’BABYCARROTS’,3,0.99);
我们需要编写一个查询,该查询的输出应该是这样的(实际上就是打印一张发票):
ITEM_NAME PRICE_PER_ITEM
------------------------------------------------------
NESCAFECLASSIC +6.49000000000000E+000
ENGLISHBAGELS6-PACK +1.49000000000000E+000
ENGLISHBAGELS6-PACK +1.49000000000000E+000
BABYCARROTS +9.90000000000000E-001
BABYCARROTS +9.90000000000000E-001
BABYCARROTS +9.90000000000000E-001
下面是一个非常简单的查询,这个查询可以实现上述功能:
select ITEM_NAME, PRICE_PER_ITEM FROM SALE_ITEM join NUMBER_SEQ
ON NUMBER_SEQ.NUM <= SALE_ITEM.ITEM_QUANTITY ORDER BY
PRICE_PER_ITEM DESC
更多精彩
赞助商链接