当前位置: 代码迷 >> Sql Server >> sql server 2005 中:由三张表中的数据得到一张表,该表的某列对应两个表达式怎么处理
  详细解决方案

sql server 2005 中:由三张表中的数据得到一张表,该表的某列对应两个表达式怎么处理

热度:62   发布时间:2016-04-27 12:36:00.0
sql server 2005 中:由三张表中的数据得到一张表,该表的某列对应两个表达式怎么办
SELECT dbo.sell_main.sell_id AS 销售单号, dbo.sp.sp_name AS 商品名称, dbo.sell_son.num AS 购买数量, dbo.sp.sp_dj AS 商品单价, dbo.sell_main.yg_id AS 收银员工号, 
  dbo.sell_main.sell_date AS 日期 into #temp
FROM dbo.sell_main INNER JOIN
  dbo.sell_son ON dbo.sell_main.sp_id = dbo.sell_son.sp_id INNER JOIN
  dbo.sp ON dbo.sell_son.sp_id = dbo.sp.sp_id
declare @xf money,@dj money,@num int,@zk int
declare @sql money
begin
SELECT @num=dbo.sell_son.num , @dj=dbo.sp.sp_dj ,@zk=dbo.sell_son.zk  
FROM dbo.sell_main INNER JOIN
  dbo.sell_son ON dbo.sell_main.sp_id = dbo.sell_son.sp_id INNER JOIN
  dbo.sp ON dbo.sell_son.sp_id = dbo.sp.sp_id
select case 
when zk=0 then [email protected][email protected][email protected]'
when zk>0 then [email protected][email protected][email protected][email protected]/10'
select @sql='alter table #temp add'+ @xf +'money '

end
exec(@sql)

------解决方案--------------------
try
SQL code
SELECT dbo.sell_main.sell_id AS 销售单号, dbo.sp.sp_name AS 商品名称, dbo.sell_son.num AS 购买数量, dbo.sp.sp_dj AS 商品单价, dbo.sell_main.yg_id AS 收银员工号,    dbo.sell_main.sell_date AS 日期,  case     when dbo.sell_son.zk=0 then dbo.sell_son.num*dbo.sp.sp_dj    when dbo.sell_son.zk>0 then dbo.sell_son.num*dbo.sp.sp_dj*dbo.sell_son.zk/10  end as xfinto #tempFROM dbo.sell_main INNER JOIN  dbo.sell_son ON dbo.sell_main.sp_id = dbo.sell_son.sp_id INNER JOIN  dbo.sp ON dbo.sell_son.sp_id = dbo.sp.sp_id
  相关解决方案