x: 是个从多个表取得数据表 :从lsxx 取得 jcss的和,jcje的和,分组条件 :GROUP BY yplb(SELECT SUM(CONVERT(float, jcss)) AS jcss, SUM(CONVERT(float, jcje)) AS jcje,yplb FROM lsxx  GROUP BY yplb)
 y: 是个从多个表取得数据表:从lskh 取得 jcss的和,jcje 的和,分组条件 :GROUP BY yplb (SELECT SUM(CONVERT(float, jcss)) AS jcss, SUM(CONVERT(float, jcje)) AS jcje, yplb FROM lskh  GROUP BY yplb)然后把x,y Full 连接,取得其中几个字段.
 Full 连接的条件是  ON x.yplb = y.yplb

解决方案 »

  1.   

    SUM(CONVERT(float, jcss)) AS jcss  把jcss 转化 成Float 类型后,求的和,作为新的字段jcss
    COALESCE (x.yplb, y.yplb) COALESCE: 返回其参数中第一个非空表达式。好了,都给你解决了,漫漫分析看看
      

  2.   

    你想怎么解释?
    SELECT COALESCE (x.yplb, y.yplb) AS yplb
    如果x.yplb不是null则选x.yplb,否则选y.yplb,如果都是null则为null值,AS 后面的yplb是字段的别名
    CONVERT(float, jcss)是将该字段的值转换为浮点类型
    FULL JOIN 全外连接,选出所有符合条件的数据行
    其它的都是很简单的语句,相信你自己应该可以理解,不明白的地方请明确指出
      

  3.   

    SELECT COALESCE(x.yplb, y.yplb) AS yplb, x.jcss, x.jcje, y.jcss AS yjcss,y.jcje AS yjcje FROM (SELECT SUM(CONVERT(float, jcss)) AS jcss, SUM(CONVERT(float, jcje)) AS jcje,yplb FROM lsxx  GROUP BY yplb) AS x FULL JOIN (SELECT SUM(CONVERT(float, jcss)) AS jcss, SUM(CONVERT(float, jcje)) AS jcje, yplb FROM lskh  GROUP BY yplb) AS y ON x.yplb = y.yplb'
    ------------------------
    1.COALESCE:返回第一个值非空的表达式的值;
    2.AS:这个就不用多说了吧;
    3.FROM (SELECT SUM(CONVERT(float, jcss)) AS jcss, SUM(CONVERT(float, jcje)) :一个子查询而已;
    4.SUM(CONVERT(float, jcss)):先转换数据类型,再求和;
    5.GROUP BY:分组,一般是配合SUM来用的;
    6.FULL JOIN:连接查询,类似的还有LEFT JOIN,RIGHT JOIN,INNER JOIN
    7.如果你认识了上面这些,那我想这个查询也就不复杂了!