码迷,mamicode.com
首页 > 其他好文 > 详细

动态读取标准表高度尺寸查询

时间:2014-11-23 00:28:57      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   sp   数据   on   

--模拟数据
--员工计件明细表
IF OBJECT_ID(‘tempdb..#emp‘)>0
DROP TABLE #emp
SELECT * INTO #emp
FROM (
SELECT ‘586‘ empcode ,‘2014-10-21‘ opdate , 0.1 gaodu
UNION ALL
SELECT ‘586‘ empcode ,‘2014-10-22‘ opdate , 2.9 gaodu
UNION ALL
SELECT ‘586‘ empcode ,‘2014-10-24‘ opdate , 15 gaodu
UNION ALL
SELECT ‘admin‘ empcode ,‘2014-10-21‘ opdate , 12 gaodu
UNION ALL
SELECT ‘admin‘ empcode ,‘2014-10-23‘ opdate , 3 gaodu
UNION ALL
SELECT ‘admin‘ empcode ,‘2014-10-25‘ opdate , 7 gaodu)L

SELECT * FROM #emp

--计件标准表
IF OBJECT_ID(‘tempdb..#bz‘)>0 DROP TABLE #bz
SELECT * INTO #bz
FROM (
SELECT ‘gaodu<=0.1‘ guige ,‘5‘ gongshi 
UNION ALL
SELECT ‘gaodu>0.1 and gaodu<3‘ guige ,‘4‘ gongshi 
UNION ALL
SELECT ‘gaodu=3‘ guige ,‘3.7‘ gongshi 
UNION ALL
SELECT ‘gaodu>3 and gaodu<18‘ guige ,‘3‘ gongshi 
UNION ALL
SELECT ‘gaodu>=18‘ guige ,‘3.5‘ gongshi )L

SELECT * FROM #bz

DECLARE @sql VARCHAR(MAX),@bz VARCHAR(MAX)
DECLARE @i INT ,@n INT

--循环标准表
IF OBJECT_ID(‘tempdb..#temp‘)>0 DROP TABLE #temp
SELECT ROW_NUMBER()OVER(ORDER BY guige,gongshi) rid
,*
INTO #temp
FROM #bz

SELECT @i=MIN(rid),@n=MAX(rid) FROM #temp
SET @bz=‘‘
WHILE(@i<=@n)
BEGIN
    SELECT @bz=@bz+‘ when ‘+guige+‘ then ‘+gongshi+CHAR(10)
    FROM #temp
    WHERE rid=@i
    SET @i=@i+1
END
PRINT @bz

SET @sql=‘select empcode,opdate,gaodu,‘+CHAR(10)+‘case‘+@bz+‘ end as gongshi
from #emp ‘
PRINT @sql

EXEC(@sql)

员工计件工资明细

bubuko.com,布布扣

计件标准表

bubuko.com,布布扣

动态生成查询的语句以及结果

select empcode,opdate,gaodu,
case when gaodu<=0.1 then 5
 when gaodu=3 then 3.7
 when gaodu>=18 then 3.5
 when gaodu>0.1 and gaodu<3 then 4
 when gaodu>3 and gaodu<18 then 3
 end as gongshi
from #emp 

bubuko.com,布布扣

动态读取标准表高度尺寸查询

标签:style   blog   http   io   ar   color   sp   数据   on   

原文地址:http://www.cnblogs.com/sp-oh-dear/p/4115923.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!