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

请帮忙看一下解决办法

2012-02-01 
请帮忙看一下SELECTa.gs,b.zgs,CASEWHENb.zgs0THEN(a.gs/b.zgs)ELSE0ENDASjgFROM(SELECTCOUNT(*)gsFROMtl

请帮忙看一下
SELECT   a.gs,   b.zgs,   CASE   WHEN   b.zgs   >   0   THEN   (a.gs   /   b.zgs)  
          ELSE   0   END   AS   jg     FROM   (SELECT   COUNT(*)   gs
                FROM   tljtjh.dbo.jhxjk
                WHERE   djbz   =   '张** ')   a   CROSS   JOIN
                    (SELECT   COUNT(*)   zgs
                  FROM   tljtjh.dbo.jhxjk
                  WHERE   djbz   =   '李** ')   b


为什么相除的结果是 '0 '   小数加不上


[解决办法]
SELECT a.gs, b.zgs, CASE WHEN b.zgs > 0 THEN (cast(a.gs as decimal) / cast(b.zgs as decimal))
ELSE 0 END AS jg FROM (SELECT COUNT(*) gs
FROM tljtjh.dbo.jhxjk
WHERE djbz = '张** ') a CROSS JOIN
(SELECT COUNT(*) zgs
FROM tljtjh.dbo.jhxjk
WHERE djbz = '李** ') b
[解决办法]
SELECT a.gs, b.zgs, CASE WHEN b.zgs > 0 THEN (a.gs*1.0 / b.zgs)
ELSE 0 END AS jg FROM (SELECT COUNT(*) gs
FROM tljtjh.dbo.jhxjk
WHERE djbz = '张** ') a CROSS JOIN
(SELECT COUNT(*) zgs
FROM tljtjh.dbo.jhxjk
WHERE djbz = '李** ') b
[解决办法]
SELECT a.gs, b.zgs, CASE WHEN b.zgs > 0 THEN a.gs / cast(b.zgs as decimal(10,2)))
ELSE 0 END AS jg FROM (SELECT COUNT(*) gs
FROM tljtjh.dbo.jhxjk
WHERE djbz = '张** ') a CROSS JOIN
(SELECT COUNT(*) zgs
FROM tljtjh.dbo.jhxjk
WHERE djbz = '李** ') b

热点排行