首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL如何才能按照要求写完成

2012-03-03 
SQL怎么才能按照要求写完成?selectI.UnitPrice,B.RootPrice,B.DiscountID,DiscountNumfromBooksB,ItemsI,D

SQL怎么才能按照要求写完成?
select   I.UnitPrice,B.RootPrice,B.DiscountID   ,DiscountNum
from   Books   B,Items   I   ,DisCount   D  
where   B.PKID   =   I.PKID   and   B.DiscountID   =   D.DiscountID  


1.当RootPrice   !=   0
    三个输出都   等于RootPrice  
2.当DiscountID   !=   1
    三个输出都等于   RootPrice   *   DiscountNum
3.   当DiscountID   =   1
三个输出都等于   shuchu1   =RootPrice   *   (DiscountNum   -1);shuchu2   =RootPrice   *   (DiscountNum   -2)
shuchu3   =RootPrice   *   (DiscountNum   -3)

请问这个SQL改怎么扩充才能完成这三个要求?



[解决办法]
select I.UnitPrice,
B.RootPrice,
B.DiscountID ,
DiscountNum,
shuchu1=case when RootPrice <> 0 then RootPrice
when DiscountID <> 1 then RootPrice * DiscountNum
when DiscountID=1 then RootPrice * (DiscountNum -1)
end,
shuchu2=case when RootPrice <> 0 then RootPrice
when DiscountID <> 1 then RootPrice * DiscountNum
when DiscountID=1 then RootPrice * (DiscountNum -2)
end,,
shuchu3=case when RootPrice <> 0 then RootPrice
when DiscountID <> 1 then RootPrice * DiscountNum
when DiscountID=1 then RootPrice * (DiscountNum -3)
end,
from Books B,Items I ,DisCount D
where B.PKID = I.PKID and B.DiscountID = D.DiscountID
[解决办法]
--try
select I.UnitPrice,
B.RootPrice,
B.DiscountID,
DiscountNum,
一星价=case when RootPrice <> 0 then RootPrice
when RootPrice=0 and D.DiscountID <> 1 then RootPrice * DiscountNum
else RootPrice * (DiscountNum -1) end,
二星价=case when RootPrice <> 0 then RootPrice
when RootPrice=0 and D.DiscountID <> 1 then RootPrice * DiscountNum
else RootPrice * (DiscountNum -2) end,
三星价=case when RootPrice <> 0 then RootPrice
when RootPrice=0 and D.DiscountID <> 1 then RootPrice * DiscountNum
else RootPrice * (DiscountNum -3) end
from Books B,Items I ,DisCount D
where B.PKID = I.PKID and B.DiscountID = D.DiscountID

热点排行