日期:2014-05-17  浏览次数:20424 次

sql 类型 计算问题
    组   类型   股份  面积
    1    6    30   100
    1    7     
   1    7
   2    6    40   300
   2    7
   2    7
通过组,类型,股份计算,每组股份 等于  100-类型的股份 ,面积等于类型的面积
   组   类型   股份    面积
    1    6    30     100
    1    7   100-30   100
   1    7    100-30   100
   2    6    40       300
   2    7    100-40   300
   2    7    100 -40   300
请高手指点,谢谢

------解决方案--------------------

SELECT a.组, a.类型, (CASE WHEN a.股份 IS NOT NULL THEN a.股份 ELSE 100-g.股份 END) AS 股份, (CASE WHEN a.面积 IS NOT NULL THEN a.面积 ELSE g.面积 END) AS 面积 
FROM TableA a LEFT JOIN 
(SELECT 组, 类型, 股份, 面积 FROM TableA WHERE 股份 IS NOT NULL AND 面积 IS NOT NULL) g 
ON a.组 = g.组