if @job = 1
begin
insert #tmp(Field,[percent],num,Style)VALUES('职业','-',@Total,'Main_cell')  insert #tmp(Field,[percent],num,Style)
  SELECT job, RTRIM(COUNT(*) * 100 /
          (SELECT COUNT(1)
         FROM RD_member)) + '%' AS [percent], CAST((COUNT(*)) AS VARCHAR(50)) AS num,'Sub_cell'
FROM RD_member
GROUP BY job
end

解决方案 »

  1.   

    兩次向臨時表 #tmp插入數據
      

  2.   

    if @job = 1
    begin
    insert #tmp(Field,[percent],num,Style)VALUES('职业','-',@Total,'Main_cell')--向#tmp临时表加入一笔数据
    insert #tmp(Field,[percent],num,Style)--向#tmp临时表加入一笔数据
    SELECT job, RTRIM(COUNT(*) * 100 /
              (SELECT COUNT(1)
             FROM RD_member)) + '%' AS [percent], CAST((COUNT(*)) AS VARCHAR(50)) AS num,'Sub_cell'
    FROM RD_member
    GROUP BY job--查询job,RD_member表中数据行数(%比)及Sub_cell字段再按job字段分组
    end
      

  3.   

    if @job = 1 --如果@job = 1
    begin --开始,相当于C#中的{
    insert #tmp(Field,[percent],num,Style)VALUES('职业','-',@Total,'Main_cell')-- 向临时表#tmp中插入一行数据
    Field  [percent](由于是关键字,所以加了[]) num                                Style
    职业   -                                     @Total(是个变量,估计是传入参数) Main_cell  insert #tmp(Field,[percent],num,Style)
      SELECT job, RTRIM(COUNT(*) * 100 /
              (SELECT COUNT(1)
             FROM RD_member)) + '%' AS [percent], CAST((COUNT(*)) AS VARCHAR(50)) AS num,'Sub_cell'
    FROM RD_member
    GROUP BY job --从RD_member中检索出数据插入到临时表#tmp中
    --SELECT job, RTRIM(COUNT(*) * 100 /
              (SELECT COUNT(1)
             FROM RD_member)) + '%' AS [percent], CAST((COUNT(*)) AS VARCHAR(50)) AS num,'Sub_cell'
    FROM RD_member
    GROUP BY job 是从RD_member中检索数据的SQL,关于第二列RTRIM(COUNT(*) * 100 /
              (SELECT COUNT(1)
             FROM RD_member)) + '%' AS [percent]是当前job选出来的数量除以RD_member中数据的总数量,对结果去除右括号(RTRIM),在后面加上%;CAST((COUNT(*)) AS VARCHAR(50))表示强制转换为VARCHAR(50)
    end --结束,相当于}