fi_company_name fi_order_date fi_company_dep fi_credit_channel fi_order_status fi_cxxb fi_order_date_alter
城西别克 2012-08-01 区域 上汽财务 合同 否 2012-08-10
城西别克 2012-08-01 区域 上汽财务 合同 否 2012-08-10
城西别克 2012-08-01 区域 上汽财务 申请 否 2012-08-10
南昌别克 2012-07-30 区域 GMAC 合同 否 2012-08-10
南昌别克 2012-07-29 展厅 GMAC 申请 否 2012-08-10
南昌别克 2012-07-31 展厅 GMAC 合同 否 2012-08-10
南昌别克 2012-07-31 区域 GMAC 申请 否 2012-08-10
南昌雪佛兰 2012-07-29 展厅 GMAC 申请 否 2012-08-10
南昌雪佛兰 2012-07-31 展厅 GMAC 申请 否 2012-08-12
南昌别克 2012-08-01 区域 GMAC 合同 是 2012-08-10
南昌别克 2012-10-01 区域 GMAC 合同 是 2012-08-10
南昌别克 2012-08-02 展厅 GMAC 合同 是 2012-08-10
南昌别克 2012-08-02 展厅 GMAC 申请 否 2012-08-10
南昌别克 2012-08-03 展厅 银行 申请 否 2012-08-10
南昌雪佛兰 2012-08-04 展厅 GMAC 申请 否 2012-08-10
南昌别克 2012-08-04 展厅 GMAC 合同 否 2012-08-10
南昌别克 2012-08-05 电销中心 GMAC 申请 否 2012-08-10
南昌别克 2012-08-08 电销中心 GMAC 申请 否 2012-08-10
南昌别克 2012-08-08 展厅 GMAC 合同 否 2012-08-10
南昌别克 2012-08-08 区域 银行 取消 否 2012-08-10
南昌别克 2012-08-08 展厅 GMAC 合同 是 2012-08-10
南昌雪佛兰 2012-08-09 展厅 GMAC 拒批 否 2012-08-10
南昌别克 2012-08-10 展厅 GMAC 申请 否 2012-08-10
南昌别克 2012-08-10 展厅 GMAC 合同 是 2012-09-10
南昌雪佛兰 2012-08-10 展厅 GMAC 合同 否 2012-08-10
表格,视图代码如下:
SELECT a.fi_company AS 单店, a.fi_plan AS [计划数], year([fi_plan_date]) AS [年份], 
      month([fi_plan_date]) AS [月份], SUM(CASE WHEN fi_company_dep = '展厅' AND 
      fi_order_status = '合同' THEN 1 ELSE 0 END) 展厅合同, 
      SUM(CASE WHEN fi_company_dep = '区域' AND 
      fi_order_status = '合同' THEN 1 ELSE 0 END) 区域合同, 
      SUM(CASE WHEN fi_company_dep = '电销中心' AND 
      fi_order_status = '合同' THEN 1 ELSE 0 END) 电销合同, 
      SUM(CASE WHEN fi_order_status = '合同' THEN 1 ELSE 0 END) 实际, 
      达成率 = ltrim(cast(SUM(CASE WHEN fi_order_status = '合同' THEN 1 ELSE 0 END) 
      * 100.0 / a.[fi_plan] AS decimal(9, 2))) + '%', 
      SUM(CASE WHEN fi_company_dep = '展厅' AND 
      fi_order_status = '申请' THEN 1 ELSE 0 END) 展厅申请, 
      SUM(CASE WHEN fi_company_dep = '展厅' AND 
      fi_order_status = '拒批' THEN 1 ELSE 0 END) 展厅拒批, 
      SUM(CASE WHEN fi_company_dep = '展厅' AND 
      fi_order_status = '取消' THEN 1 ELSE 0 END) 展厅取消, 
      SUM(CASE WHEN fi_company_dep = '区域' AND 
      fi_order_status = '申请' THEN 1 ELSE 0 END) 区域申请, 
      SUM(CASE WHEN fi_company_dep = '区域' AND 
      fi_order_status = '拒批' THEN 1 ELSE 0 END) 区域拒批, 
      SUM(CASE WHEN fi_company_dep = '区域' AND 
      fi_order_status = '取消' THEN 1 ELSE 0 END) 区域取消, 
      SUM(CASE WHEN fi_company_dep = '电销中心' AND 
      fi_order_status = '申请' THEN 1 ELSE 0 END) 电销申请, 
      SUM(CASE WHEN fi_company_dep = '电销中心' AND 
      fi_order_status = '拒批' THEN 1 ELSE 0 END) 电销拒批, 
      SUM(CASE WHEN fi_company_dep = '电销中心' AND 
      fi_order_status = '取消' THEN 1 ELSE 0 END) 电销取消, 
      SUM(CASE WHEN fi_cxxb = '是' AND fi_order_status = '合同' THEN 1 ELSE 0 END) 
      促销量
FROM tb_fi_plan a, tb_fi b
WHERE a.fi_company = b.fi_company_name AND year(b.fi_order_date_alter) 
      = year(GetDate()) AND month(b.fi_order_date_alter) = month(GetDate())
GROUP BY a.fi_company, year(fi_plan_date), month(fi_plan_date), a.fi_plan为什么求出来的8、9月份南昌别克的数据都是一样的?有谁知道吗?

解决方案 »

  1.   


    AND year(b.fi_order_date_alter)  
      = year(GetDate()) AND month(b.fi_order_date_alter) = month(GetDate())
    --改简单点吧
    and convert(varchar(6),b.fi_order_date_alter,112)=convert(varchar(6),getdate(),112)
    还有你这个视图查的只是b.fi_order_date_alter为当前月份的记录,无论你对视图传什么参数这点是不变的,是不是你说的问题 
      

  2.   

    tb_fi_plan,这个表是计划表,每个月导一次,字段只有,公司名,日期,计划数
      

  3.   

    数据结果和tb_fi中的数据也有关系,你用的是内连接。
      

  4.   

    就是两个表,一个tb_fi,记录日常操作记录,另一个表是tb_fi_plan,是每个月的计划,现在就是想根据这两个表求每个月实际完成的数量。上面那个可以求出来,但不能区分月份。
      

  5.   

    给出两个表的脚本,测试数据,及想要的结果。
    参考:
    http://topic.csdn.net/u/20100716/19/6f132f16-20e4-418c-8dee-b99d5f86d320.html
      

  6.   

    数据结果和tb_fi中的数据也有关系,你用的是内连接。
      

  7.   

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tb_fi]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[tb_fi]
    GOCREATE TABLE [dbo].[tb_fi] (
    [ID] [int] IDENTITY (1, 1) NOT NULL ,
    [fi_company_name] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_order_date] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_car_owned] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_car_type] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_company_dep] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_credit_channel] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_order_id] [varchar] (25) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_customer_name] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_customer_tel] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_customer_id] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_order_status] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_customer_sex] [char] (4) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_customer_bir] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_sale_name] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_cxxb] [varchar] (4) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_credit_limit] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_car_number] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_order_date_alter] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_customer_occ] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,
    [fi_user] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GOif exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tb_fi_plan]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[tb_fi_plan]
    GOCREATE TABLE [dbo].[tb_fi_plan] (
    [ID] [int] IDENTITY (1, 1) NOT NULL ,
    [fi_company] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [fi_plan] [int] NOT NULL ,
    [fi_plan_date] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [Ispost] [varchar] (2) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GOSELECT a.fi_company AS 单店, a.fi_plan AS [计划数], year([fi_plan_date]) AS [年份], 
          month([fi_plan_date]) AS [月份], SUM(CASE WHEN fi_company_dep = '展厅' AND 
          fi_order_status = '合同' THEN 1 ELSE 0 END) 展厅合同, 
          SUM(CASE WHEN fi_company_dep = '区域' AND 
          fi_order_status = '合同' THEN 1 ELSE 0 END) 区域合同, 
          SUM(CASE WHEN fi_company_dep = '电销中心' AND 
          fi_order_status = '合同' THEN 1 ELSE 0 END) 电销合同, 
          SUM(CASE WHEN fi_order_status = '合同' THEN 1 ELSE 0 END) 实际, 
          达成率 = ltrim(cast(SUM(CASE WHEN fi_order_status = '合同' THEN 1 ELSE 0 END) 
          * 100.0 / a.[fi_plan] AS decimal(9, 2))) + '%', 
          SUM(CASE WHEN fi_company_dep = '展厅' AND 
          fi_order_status = '申请' THEN 1 ELSE 0 END) 展厅申请, 
          SUM(CASE WHEN fi_company_dep = '展厅' AND 
          fi_order_status = '拒批' THEN 1 ELSE 0 END) 展厅拒批, 
          SUM(CASE WHEN fi_company_dep = '展厅' AND 
          fi_order_status = '取消' THEN 1 ELSE 0 END) 展厅取消, 
          SUM(CASE WHEN fi_company_dep = '区域' AND 
          fi_order_status = '申请' THEN 1 ELSE 0 END) 区域申请, 
          SUM(CASE WHEN fi_company_dep = '区域' AND 
          fi_order_status = '拒批' THEN 1 ELSE 0 END) 区域拒批, 
          SUM(CASE WHEN fi_company_dep = '区域' AND 
          fi_order_status = '取消' THEN 1 ELSE 0 END) 区域取消, 
          SUM(CASE WHEN fi_company_dep = '电销中心' AND 
          fi_order_status = '申请' THEN 1 ELSE 0 END) 电销申请, 
          SUM(CASE WHEN fi_company_dep = '电销中心' AND 
          fi_order_status = '拒批' THEN 1 ELSE 0 END) 电销拒批, 
          SUM(CASE WHEN fi_company_dep = '电销中心' AND 
          fi_order_status = '取消' THEN 1 ELSE 0 END) 电销取消, 
          SUM(CASE WHEN fi_cxxb = '是' AND fi_order_status = '合同' THEN 1 ELSE 0 END) 
          促销量
    FROM tb_fi_plan a, tb_fi b
    WHERE a.fi_company = b.fi_company_name AND year(b.fi_order_date_alter) 
          = year(GetDate()) AND month(b.fi_order_date_alter) = month(GetDate())
    GROUP BY a.fi_company, year(fi_plan_date), month(fi_plan_date), a.fi_plan
    表格数据:
    tb_fi:
    ID fi_company_name fi_order_date fi_car_owned fi_car_type fi_company_dep fi_credit_channel fi_order_id fi_customer_name fi_customer_tel fi_customer_id fi_order_status fi_customer_sex fi_customer_bir fi_sale_name fi_cxxb fi_credit_limit fi_car_number fi_order_date_alter fi_customer_occ fi_user
    1 南昌别克 2012-07-28 别克 凯越 展厅 GMAC 李忠玉 13970973307 362429198012035337 申请 男 1980-12-03 管理员 2012-08-10
    2 南昌别克 2012-07-28 别克 凯越 展厅 GMAC 李忠玉 13970973307 362429198012035337 申请 男 1980-12-03 管理员 2012-08-10
    3 南昌别克 2012-07-28 别克 凯越 展厅 GMAC 李忠玉 13970973307 362429198012035337 申请 男 1980-12-03 管理员 2012-08-10
    4 南昌别克 2012-07-28 别克 凯越 展厅 GMAC 李忠玉 13970973307 362429198012035337 申请 男 1980-12-03 管理员 2012-08-10
    5 南昌别克 2012-07-28 别克 凯越 展厅 GMAC 李忠玉 13970973307 362429198012035337 申请 男 1980-12-03 管理员 2012-08-10
    6 南昌别克 2012-07-28 别克 凯越 展厅 GMAC 李忠玉 13970973307 362429198012035337 申请 男 1980-12-03 管理员 2012-08-10
    7 南昌别克 2012-07-28 别克 凯越 展厅 GMAC 李忠玉 13970973307 362429198012035337 申请 男 1980-12-03 管理员 2012-08-10
    8 南昌别克 2012-07-28 别克 凯越 展厅 GMAC 李忠玉 13970973307 362429198012035337 申请 男 1980-12-03 管理员 2012-08-10
    9 南昌别克 2012-07-28 别克 凯越 展厅 GMAC 李忠玉 13970973307 362429198012035337 申请 男 1980-12-03 管理员 2012-08-10
    10 南昌别克 2012-07-27 别克 凯越 展厅 GMAC 李忠玉 13970973307 362429198012035337 申请 男 1980-12-03 管理员 2012-08-10
    11 南昌雪佛兰 2012-07-26 雪佛兰 爱唯欧 区域 GMAC 成园 13576088705 36011119850903096X 申请 女 1985-09-03 李忠文 2012-08-10
    12 南昌雪佛兰 2012-07-26 雪佛兰 爱唯欧 区域 GMAC 成园 13576088705 36011119850903096X 申请 女 1985-09-03 李忠文 2012-08-10
    13 南昌雪佛兰 2012-07-26 雪佛兰 爱唯欧 区域 GMAC 成园 13576088705 36011119850903096X 申请 女 1985-09-03 李忠文 2012-08-10
    14 南昌雪佛兰 2012-07-26 雪佛兰 爱唯欧 区域 GMAC 成园 13576088705 36011119850903096X 申请 女 1985-09-03 李忠文 2012-08-10
    15 南昌雪佛兰 2012-07-26 雪佛兰 爱唯欧 区域 GMAC 成园 13576088705 36011119850903096X 申请 女 1985-09-03 李忠文 2012-08-10
    16 南昌别克 2012-07-29 别克 君威 区域 上汽财 刘阳 13576088705 362429198012035337 申请 男 1980-12-03 管理员 2012-08-10
    17 南昌别克 2012-07-29 别克 君威 展厅 GMAC 刘阳 13576088705 36011119850903096X 申请 女 1985-09-03 管理员 2012-08-10
    18 南昌别克 2012-07-29 别克 君威 展厅 GMAC 李强 13576088705 362429198012035337 合同 男 1980-12-03 管理员 2012-08-10
    19 南昌别克 别克 凯越 展厅 GMAC 362429198012035337 申请 男 2012-07-30 管理员 2012-08-10
    20 南昌别克 别克 凯越 展厅 GMAC 362429198012035337 申请 男 2012-07-30 管理员 2012-08-10
    21 南昌别克 别克 凯越 展厅 GMAC 362429198012035337 申请 男 2012-07-30 管理员 2012-08-10
    22 南昌别克 2012-07-30 别克 凯越 区域 上汽财务 刘华 079188610033 362429198012035337 申请 男 1980-12-03 管理员 2012-08-10
    23 南昌别克 2012-07-30 别克 凯越 展厅 GMAC 刘承华 079188610033 362429198012035337 合同 男 1980-12-03 管理员 2012-08-10
    24 南昌别克 2012-07-30 别克 凯越 区域 上汽财务 刘华 079188610033 362429198012035337 申请 男 1980-12-03 管理员 2012-08-10
    25 城西别克 2012-08-01 别克 凯越 区域 上汽财务 刘华 079188610033 362429198012035337 合同 男 管理员 2012-08-10
    26 城西别克 2012-08-01 别克 凯越 区域 上汽财务 刘华 079188610033 362429198012035337 合同 男 管理员 2012-08-10
    27 城西别克 2012-08-01 别克 凯越 区域 上汽财务 刘华 079188610033 362429198012035337 申请 男 管理员 2012-08-10
    28 南昌别克 2012-07-30 别克 凯越 区域 GMAC 刘一少 079188610033 362429198012035337 合同 男 1980-12-03 管理员 2012-08-10
    29 南昌别克 2012-07-29 别克 凯越 展厅 GMAC 李化 079188610033 362429198012035337 申请 男 1980-12-03 管理员 2012-08-10
    30 南昌别克 2012-07-31 别克 凯越 展厅 GMAC 刘子奇 079188610033 362429198012035337 合同 男 1980-12-03 管理员 2012-08-10
    31 南昌别克 2012-07-31 别克 凯越 区域 GMAC 刘子奇2 079188610033 362429198012035337 申请 男 1980-12-03 管理员 2012-08-10
    32 南昌雪佛兰 2012-07-31 雪佛兰 展厅 GMAC 刘子奇2 079188610033 362429198012035337 申请 男 1980-12-03 小红 2012-08-10
    33 南昌雪佛兰 2012-07-29 雪佛兰 展厅 GMAC 刘子奇 079188610033 362429198012035337 申请 男 1980-12-03 小红 2012-08-10
    34 南昌雪佛兰 2012-07-31 雪佛兰 展厅 GMAC 刘子奇 079188610033 362429198012035337 申请 男 1980-12-03 小红 2012-08-12
    35 南昌别克 2012-08-01 别克 凯越 区域 GMAC 刘子奇2 079188610033 362429198012035337 合同 男 1980-12-03 管理员 是 2012-08-10
    36 南昌别克 2012-10-01 别克 凯越 区域 GMAC 刘子奇2 079188610033 362429198012035337 合同 男 1980-12-03 管理员 是 2012-08-10
    37 南昌别克 2012-08-02 别克 凯越 展厅 GMAC 刘子奇2 079188610033 362429198012035337 合同 男 1980-12-03 管理员 是 2012-08-10
    38 南昌别克 2012-08-02 别克 凯越 展厅 GMAC 刘子奇 079188610033 362429198012035337 申请 男 1980-12-03 管理员 否 2012-08-10
    39 南昌别克 2012-08-03 别克 林荫大道 展厅 银行 王成 13576088705 362429198012035337 申请 男 1980-12-03 王蓉 否 2012-08-10
    40 南昌雪佛兰 2012-08-04 雪佛兰 科鲁兹 展厅 GMAC 成五一 18970972341 36011119850903096X 申请 女 1985-09-03 陈星 否 2012-08-10
    41 南昌别克 2012-08-04 别克 凯越 展厅 GMAC 李强 13576088705 36011119850903096X 合同 女 1985-09-03 mrsoft 否 2012-08-10
    42 南昌别克 2012-08-05 别克 凯越 电销中心 GMAC 成园 13576088705 36011119850903096X 申请 女 1985-09-03 mrsoft 否 3年 2012-08-10
    43 南昌别克 2012-08-08 别克 林荫大道 电销中心 GMAC 胡文强 079188610033 362228198512043133 申请 男 1985-12-04 mrsoft 否 3年 赣 2012-08-10
    44 南昌别克 2012-08-08 别克 凯越 展厅 GMAC 熊威 079188610033 360102198712073838 合同 男 1987-12-07 mrsoft 否 3年 赣 2012-08-10
    45 南昌别克 2012-08-08 别克 林荫大道 区域 银行 刘强 079188610033 36010219671025533X 取消 男 1967-07-10 mrsoft 4年 赣 2012-08-10
    46 南昌别克 2012-08-08 别克 凯越 展厅 GMAC 吴筱婷 079188610033 360104197307080442 合同 女 1973-07-08 mrsoft 是 3年 赣K86421 2012-08-10
    47 南昌雪佛兰 2012-08-09 雪佛兰 赛欧 展厅 GMAC 胡文强 079188610032 362429198012035337 拒批 女 1980-12-03 陈星 否 3年 赣 2012-08-10
    48 南昌别克 2012-08-10 别克 林荫大道 展厅 GMAC 胡文强 079188610033 362429198012035337 申请 男 1980-12-03 mrsoft 否 5年 赣 2012-08-10 公务员
    49 南昌别克 2012-08-10 别克 凯越 展厅 GMAC 胡文强 079188610033 362429198012035337 合同 女 1982-03-12 mrsoft 是 4年 赣 2012-09-10 工人
    50 南昌雪佛兰 2012-08-10 雪佛兰 科鲁兹 展厅 GMAC 胡文强 079188610032 362429198012035337 合同 男 1985-04-12 陈星 否 5年 赣 2012-08-10 保安
    51 南昌别克 2012-08-11 别克 凯越 展厅 GMAC 张华 079188610032 362429198012035337 合同 女 2012-08-09 李文化 否 3年 赣 2012-08-11 公务员 mrsofttb_fi_plan:
    ID fi_company fi_plan fi_plan_date Ispost
    1 南昌别克 30 2012-08-01 是
    3 南昌雪佛兰 27 2012-08-01 是
    7 城西别克 15 2012-08-01 是
    9 南昌别克 20 2012-09-06 是想要得到的结果是:
    ,想把最终结果9月实际是1而还不是跟8月份一样.
      

  8.   


    SELECT a.fi_company AS 单店, a.fi_plan AS [计划数], year([fi_plan_date]) AS [年份],  
      month([fi_plan_date]) AS [月份], SUM(CASE WHEN fi_company_dep = '展厅' AND  
      fi_order_status = '合同' THEN 1 ELSE 0 END) 展厅合同,  
      SUM(CASE WHEN fi_company_dep = '区域' AND  
      fi_order_status = '合同' THEN 1 ELSE 0 END) 区域合同,  
      SUM(CASE WHEN fi_company_dep = '电销中心' AND  
      fi_order_status = '合同' THEN 1 ELSE 0 END) 电销合同,  
      SUM(CASE WHEN fi_order_status = '合同' THEN 1 ELSE 0 END) 实际,  
      达成率 = ltrim(cast(SUM(CASE WHEN fi_order_status = '合同' THEN 1 ELSE 0 END)  
      * 100.0 / a.[fi_plan] AS decimal(9, 2))) + '%',  
      SUM(CASE WHEN fi_company_dep = '展厅' AND  
      fi_order_status = '申请' THEN 1 ELSE 0 END) 展厅申请,  
      SUM(CASE WHEN fi_company_dep = '展厅' AND  
      fi_order_status = '拒批' THEN 1 ELSE 0 END) 展厅拒批,  
      SUM(CASE WHEN fi_company_dep = '展厅' AND  
      fi_order_status = '取消' THEN 1 ELSE 0 END) 展厅取消,  
      SUM(CASE WHEN fi_company_dep = '区域' AND  
      fi_order_status = '申请' THEN 1 ELSE 0 END) 区域申请,  
      SUM(CASE WHEN fi_company_dep = '区域' AND  
      fi_order_status = '拒批' THEN 1 ELSE 0 END) 区域拒批,  
      SUM(CASE WHEN fi_company_dep = '区域' AND  
      fi_order_status = '取消' THEN 1 ELSE 0 END) 区域取消,  
      SUM(CASE WHEN fi_company_dep = '电销中心' AND  
      fi_order_status = '申请' THEN 1 ELSE 0 END) 电销申请,  
      SUM(CASE WHEN fi_company_dep = '电销中心' AND  
      fi_order_status = '拒批' THEN 1 ELSE 0 END) 电销拒批,  
      SUM(CASE WHEN fi_company_dep = '电销中心' AND  
      fi_order_status = '取消' THEN 1 ELSE 0 END) 电销取消,  
      SUM(CASE WHEN fi_cxxb = '是' AND fi_order_status = '合同' THEN 1 ELSE 0 END)  
      促销量
    FROM tb_fi_plan a, tb_fi b
    WHERE a.fi_company = b.fi_company_name AND year(b.fi_order_date_alter)  
      = year(GetDate()) AND month(b.fi_order_date_alter) = month(GetDate())
    GROUP BY a.fi_company, year(fi_plan_date), month(fi_plan_date), a.fi_plan
    按照这个视同查询到的结果有一个问题,就是南昌别克8、9月份的实际数量都是一样的,实际上9月份的实际量是1,怎么办?
      

  9.   


    --> 测试数据: @tb_fi
    declare @tb_fi table (fi_company_name varchar(10),fi_order_date datetime,fi_company_dep varchar(8),fi_credit_channel varchar(8),fi_order_status varchar(4),fi_cxxb varchar(2),fi_order_date_alter datetime)
    insert into @tb_fi
    select '城西别克','2012-08-01','区域','上汽财务','合同','否','2012-08-10' union all
    select '城西别克','2012-08-01','区域','上汽财务','合同','否','2012-08-10' union all
    select '城西别克','2012-08-01','区域','上汽财务','申请','否','2012-08-10' union all
    select '南昌别克','2012-07-30','区域','GMAC','合同','否','2012-08-10' union all
    select '南昌别克','2012-07-29','展厅','GMAC','申请','否','2012-08-10' union all
    select '南昌别克','2012-07-31','展厅','GMAC','合同','否','2012-08-10' union all
    select '南昌别克','2012-07-31','区域','GMAC','申请','否','2012-08-10' union all
    select '南昌雪佛兰','2012-07-29','展厅','GMAC','申请','否','2012-08-10' union all
    select '南昌雪佛兰','2012-07-31','展厅','GMAC','申请','否','2012-08-12' union all
    select '南昌别克','2012-08-01','区域','GMAC','合同','是','2012-08-10' union all
    select '南昌别克','2012-10-01','区域','GMAC','合同','是','2012-08-10' union all
    select '南昌别克','2012-08-02','展厅','GMAC','合同','是','2012-08-10' union all
    select '南昌别克','2012-08-02','展厅','GMAC','申请','否','2012-08-10' union all
    select '南昌别克','2012-08-03','展厅','银行','申请','否','2012-08-10' union all
    select '南昌雪佛兰','2012-08-04','展厅','GMAC','申请','否','2012-08-10' union all
    select '南昌别克','2012-08-04','展厅','GMAC','合同','否','2012-08-10' union all
    select '南昌别克','2012-08-05','电销中心','GMAC','申请','否','2012-08-10' union all
    select '南昌别克','2012-08-08','电销中心','GMAC','申请','否','2012-08-10' union all
    select '南昌别克','2012-08-08','展厅','GMAC','合同','否','2012-08-10' union all
    select '南昌别克','2012-08-08','区域','银行','取消','否','2012-08-10' union all
    select '南昌别克','2012-08-08','展厅','GMAC','合同','是','2012-08-10' union all
    select '南昌雪佛兰','2012-08-09','展厅','GMAC','拒批','否','2012-08-10' union all
    select '南昌别克','2012-08-10','展厅','GMAC','申请','否','2012-08-10' union all
    select '南昌别克','2012-08-10','展厅','GMAC','合同','是','2012-09-10' union all
    select '南昌雪佛兰','2012-08-10','展厅','GMAC','合同','否','2012-08-10'select * from @tb_fi
    /*
    fi_company_name fi_order_date           fi_company_dep fi_credit_channel fi_order_status fi_cxxb fi_order_date_alter
    --------------- ----------------------- -------------- ----------------- --------------- ------- -----------------------
    城西别克            2012-08-01 00:00:00.000 区域             上汽财务              合同              否       2012-08-10 00:00:00.000
    城西别克            2012-08-01 00:00:00.000 区域             上汽财务              合同              否       2012-08-10 00:00:00.000
    城西别克            2012-08-01 00:00:00.000 区域             上汽财务              申请              否       2012-08-10 00:00:00.000
    南昌别克            2012-07-30 00:00:00.000 区域             GMAC              合同              否       2012-08-10 00:00:00.000
    南昌别克            2012-07-29 00:00:00.000 展厅             GMAC              申请              否       2012-08-10 00:00:00.000
    南昌别克            2012-07-31 00:00:00.000 展厅             GMAC              合同              否       2012-08-10 00:00:00.000
    南昌别克            2012-07-31 00:00:00.000 区域             GMAC              申请              否       2012-08-10 00:00:00.000
    南昌雪佛兰           2012-07-29 00:00:00.000 展厅             GMAC              申请              否       2012-08-10 00:00:00.000
    南昌雪佛兰           2012-07-31 00:00:00.000 展厅             GMAC              申请              否       2012-08-12 00:00:00.000
    南昌别克            2012-08-01 00:00:00.000 区域             GMAC              合同              是       2012-08-10 00:00:00.000
    南昌别克            2012-10-01 00:00:00.000 区域             GMAC              合同              是       2012-08-10 00:00:00.000
    南昌别克            2012-08-02 00:00:00.000 展厅             GMAC              合同              是       2012-08-10 00:00:00.000
    南昌别克            2012-08-02 00:00:00.000 展厅             GMAC              申请              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-03 00:00:00.000 展厅             银行                申请              否       2012-08-10 00:00:00.000
    南昌雪佛兰           2012-08-04 00:00:00.000 展厅             GMAC              申请              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-04 00:00:00.000 展厅             GMAC              合同              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-05 00:00:00.000 电销中心           GMAC              申请              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-08 00:00:00.000 电销中心           GMAC              申请              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-08 00:00:00.000 展厅             GMAC              合同              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-08 00:00:00.000 区域             银行                取消              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-08 00:00:00.000 展厅             GMAC              合同              是       2012-08-10 00:00:00.000
    南昌雪佛兰           2012-08-09 00:00:00.000 展厅             GMAC              拒批              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-10 00:00:00.000 展厅             GMAC              申请              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-10 00:00:00.000 展厅             GMAC              合同              是       2012-09-10 00:00:00.000
    南昌雪佛兰           2012-08-10 00:00:00.000 展厅             GMAC              合同              否       2012-08-10 00:00:00.000
    */--> 测试数据: @tb_fi_plan
    declare @tb_fi_plan table 
    (
    ID int,fi_company varchar(10),fi_plan int,
    fi_plan_date datetime,Ispost varchar(2)
    )
    insert into @tb_fi_plan
    select 1,'南昌别克',30,'2012-08-01','是' union all
    select 3,'南昌雪佛兰',27,'2012-08-01','是' union all
    select 7,'城西别克',15,'2012-08-01','是' union all
    select 9,'南昌别克',20,'2012-09-06','是'select * from @tb_fi_plan
    /*
    ID          fi_company fi_plan     fi_plan_date            Ispost
    ----------- ---------- ----------- ----------------------- ------
    1           南昌别克       30          2012-08-01 00:00:00.000 是
    3           南昌雪佛兰      27          2012-08-01 00:00:00.000 是
    7           城西别克       15          2012-08-01 00:00:00.000 是
    9           南昌别克       20          2012-09-06 00:00:00.000 是
    */SELECT 
    a.fi_company AS 单店, 
    a.fi_plan AS [计划数], 
    year([fi_plan_date]) AS [年份],  
    month([fi_plan_date]) AS [月份], 
    SUM(CASE WHEN fi_company_dep = '展厅' AND fi_order_status = '合同' THEN 1 ELSE 0 END) 展厅合同,  
    SUM(CASE WHEN fi_company_dep = '区域' AND fi_order_status = '合同' THEN 1 ELSE 0 END) 区域合同,  
    SUM(CASE WHEN fi_company_dep = '电销中心' AND fi_order_status = '合同' THEN 1 ELSE 0 END) 电销合同,  
    SUM(CASE WHEN fi_order_status = '合同' THEN 1 ELSE 0 END) 实际,  
    达成率 = ltrim(cast(SUM(CASE WHEN fi_order_status = '合同' THEN 1 ELSE 0 END)  
      * 100.0 / a.[fi_plan] AS decimal(9, 2))) + '%',  
    SUM(CASE WHEN fi_company_dep = '展厅' AND fi_order_status = '申请' THEN 1 ELSE 0 END) 展厅申请,  
    SUM(CASE WHEN fi_company_dep = '展厅' AND fi_order_status = '拒批' THEN 1 ELSE 0 END) 展厅拒批,  
    SUM(CASE WHEN fi_company_dep = '展厅' AND fi_order_status = '取消' THEN 1 ELSE 0 END) 展厅取消,  
    SUM(CASE WHEN fi_company_dep = '区域' AND fi_order_status = '申请' THEN 1 ELSE 0 END) 区域申请,  
    SUM(CASE WHEN fi_company_dep = '区域' AND fi_order_status = '拒批' THEN 1 ELSE 0 END) 区域拒批,  
    SUM(CASE WHEN fi_company_dep = '区域' AND fi_order_status = '取消' THEN 1 ELSE 0 END) 区域取消,  
    SUM(CASE WHEN fi_company_dep = '电销中心' AND fi_order_status = '申请' THEN 1 ELSE 0 END) 电销申请,  
    SUM(CASE WHEN fi_company_dep = '电销中心' AND fi_order_status = '拒批' THEN 1 ELSE 0 END) 电销拒批,  
    SUM(CASE WHEN fi_company_dep = '电销中心' AND fi_order_status = '取消' THEN 1 ELSE 0 END) 电销取消,  
    SUM(CASE WHEN fi_cxxb = '是' AND fi_order_status = '合同' THEN 1 ELSE 0 END) 促销量
    FROM @tb_fi_plan a, @tb_fi b
    WHERE a.fi_company = b.fi_company_name 
          AND year(b.fi_order_date_alter)= year(GetDate()) 
          AND month(b.fi_order_date_alter) = month(GetDate())
    GROUP BY a.fi_company, year(fi_plan_date), month(fi_plan_date), a.fi_plan--你现在的结果是这个样子的
    /*
    单店         计划数         年份          月份          展厅合同        区域合同        电销合同        实际          达成率                                        展厅申请        展厅拒批        展厅取消        区域申请        区域拒批        区域取消        电销申请        电销拒批        电销取消        促销量
    ---------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ------------------------------------------ ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
    城西别克       15          2012        8           0           2           0           2           13.33%                                     0           0           0           1           0           0           0           0           0           0
    南昌别克       30          2012        8           5           3           0           8           26.67%                                     4           0           0           1           0           1           2           0           0           4
    南昌别克       20          2012        9           5           3           0           8           40.00%                                     4           0           0           1           0           1           2           0           0           4
    南昌雪佛兰      27          2012        8           1           0           0           1           3.70%                                      3           1           0           0           0           0           0           0           0           0
    */
      

  10.   


    --> 测试数据: @tb_fi
    declare @tb_fi table (fi_company_name varchar(10),fi_order_date datetime,fi_company_dep varchar(8),fi_credit_channel varchar(8),fi_order_status varchar(4),fi_cxxb varchar(2),fi_order_date_alter datetime)
    insert into @tb_fi
    select '城西别克','2012-08-01','区域','上汽财务','合同','否','2012-08-10' union all
    select '城西别克','2012-08-01','区域','上汽财务','合同','否','2012-08-10' union all
    select '城西别克','2012-08-01','区域','上汽财务','申请','否','2012-08-10' union all
    select '南昌别克','2012-07-30','区域','GMAC','合同','否','2012-08-10' union all
    select '南昌别克','2012-07-29','展厅','GMAC','申请','否','2012-08-10' union all
    select '南昌别克','2012-07-31','展厅','GMAC','合同','否','2012-08-10' union all
    select '南昌别克','2012-07-31','区域','GMAC','申请','否','2012-08-10' union all
    select '南昌雪佛兰','2012-07-29','展厅','GMAC','申请','否','2012-08-10' union all
    select '南昌雪佛兰','2012-07-31','展厅','GMAC','申请','否','2012-08-12' union all
    select '南昌别克','2012-08-01','区域','GMAC','合同','是','2012-08-10' union all
    select '南昌别克','2012-10-01','区域','GMAC','合同','是','2012-08-10' union all
    select '南昌别克','2012-08-02','展厅','GMAC','合同','是','2012-08-10' union all
    select '南昌别克','2012-08-02','展厅','GMAC','申请','否','2012-08-10' union all
    select '南昌别克','2012-08-03','展厅','银行','申请','否','2012-08-10' union all
    select '南昌雪佛兰','2012-08-04','展厅','GMAC','申请','否','2012-08-10' union all
    select '南昌别克','2012-08-04','展厅','GMAC','合同','否','2012-08-10' union all
    select '南昌别克','2012-08-05','电销中心','GMAC','申请','否','2012-08-10' union all
    select '南昌别克','2012-08-08','电销中心','GMAC','申请','否','2012-08-10' union all
    select '南昌别克','2012-08-08','展厅','GMAC','合同','否','2012-08-10' union all
    select '南昌别克','2012-08-08','区域','银行','取消','否','2012-08-10' union all
    select '南昌别克','2012-08-08','展厅','GMAC','合同','是','2012-08-10' union all
    select '南昌雪佛兰','2012-08-09','展厅','GMAC','拒批','否','2012-08-10' union all
    select '南昌别克','2012-08-10','展厅','GMAC','申请','否','2012-08-10' union all
    select '南昌别克','2012-08-10','展厅','GMAC','合同','是','2012-09-10' union all
    select '南昌雪佛兰','2012-08-10','展厅','GMAC','合同','否','2012-08-10'/*
    fi_company_name fi_order_date           fi_company_dep fi_credit_channel fi_order_status fi_cxxb fi_order_date_alter
    --------------- ----------------------- -------------- ----------------- --------------- ------- -----------------------
    城西别克            2012-08-01 00:00:00.000 区域             上汽财务              合同              否       2012-08-10 00:00:00.000
    城西别克            2012-08-01 00:00:00.000 区域             上汽财务              合同              否       2012-08-10 00:00:00.000
    城西别克            2012-08-01 00:00:00.000 区域             上汽财务              申请              否       2012-08-10 00:00:00.000
    南昌别克            2012-07-30 00:00:00.000 区域             GMAC              合同              否       2012-08-10 00:00:00.000
    南昌别克            2012-07-29 00:00:00.000 展厅             GMAC              申请              否       2012-08-10 00:00:00.000
    南昌别克            2012-07-31 00:00:00.000 展厅             GMAC              合同              否       2012-08-10 00:00:00.000
    南昌别克            2012-07-31 00:00:00.000 区域             GMAC              申请              否       2012-08-10 00:00:00.000
    南昌雪佛兰           2012-07-29 00:00:00.000 展厅             GMAC              申请              否       2012-08-10 00:00:00.000
    南昌雪佛兰           2012-07-31 00:00:00.000 展厅             GMAC              申请              否       2012-08-12 00:00:00.000
    南昌别克            2012-08-01 00:00:00.000 区域             GMAC              合同              是       2012-08-10 00:00:00.000
    南昌别克            2012-10-01 00:00:00.000 区域             GMAC              合同              是       2012-08-10 00:00:00.000
    南昌别克            2012-08-02 00:00:00.000 展厅             GMAC              合同              是       2012-08-10 00:00:00.000
    南昌别克            2012-08-02 00:00:00.000 展厅             GMAC              申请              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-03 00:00:00.000 展厅             银行                申请              否       2012-08-10 00:00:00.000
    南昌雪佛兰           2012-08-04 00:00:00.000 展厅             GMAC              申请              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-04 00:00:00.000 展厅             GMAC              合同              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-05 00:00:00.000 电销中心           GMAC              申请              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-08 00:00:00.000 电销中心           GMAC              申请              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-08 00:00:00.000 展厅             GMAC              合同              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-08 00:00:00.000 区域             银行                取消              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-08 00:00:00.000 展厅             GMAC              合同              是       2012-08-10 00:00:00.000
    南昌雪佛兰           2012-08-09 00:00:00.000 展厅             GMAC              拒批              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-10 00:00:00.000 展厅             GMAC              申请              否       2012-08-10 00:00:00.000
    南昌别克            2012-08-10 00:00:00.000 展厅             GMAC              合同              是       2012-09-10 00:00:00.000
    南昌雪佛兰           2012-08-10 00:00:00.000 展厅             GMAC              合同              否       2012-08-10 00:00:00.000
    */--> 测试数据: @tb_fi_plan
    declare @tb_fi_plan table 
    (
    ID int,fi_company varchar(10),fi_plan int,
    fi_plan_date datetime,Ispost varchar(2)
    )
    insert into @tb_fi_plan
    select 1,'南昌别克',30,'2012-08-01','是' union all
    select 3,'南昌雪佛兰',27,'2012-08-01','是' union all
    select 7,'城西别克',15,'2012-08-01','是' union all
    select 9,'南昌别克',20,'2012-09-06','是'/*
    ID          fi_company fi_plan     fi_plan_date            Ispost
    ----------- ---------- ----------- ----------------------- ------
    1           南昌别克       30          2012-08-01 00:00:00.000 是
    3           南昌雪佛兰      27          2012-08-01 00:00:00.000 是
    7           城西别克       15          2012-08-01 00:00:00.000 是
    9           南昌别克       20          2012-09-06 00:00:00.000 是
    */SELECT 
        a.fi_company AS 单店, 
        a.fi_plan AS [计划数], 
        year([fi_plan_date]) AS [年份],  
        month([fi_plan_date]) AS [月份], 
        SUM(CASE WHEN fi_company_dep = '展厅' AND fi_order_status = '合同' and month(fi_order_date_alter)=month(fi_plan_date) THEN 1 ELSE 0 END) 展厅合同,  
        SUM(CASE WHEN fi_company_dep = '区域' AND fi_order_status = '合同' and month(fi_order_date_alter)=month(fi_plan_date) THEN 1 ELSE 0 END) 区域合同,  
        SUM(CASE WHEN fi_company_dep = '电销中心' AND fi_order_status = '合同'and month(fi_order_date_alter)=month(fi_plan_date)  THEN 1 ELSE 0 END) 电销合同,  
        SUM(CASE WHEN fi_order_status = '合同' and month(fi_order_date_alter)=month(fi_plan_date) THEN 1 ELSE 0 END) 实际,  
        达成率 = ltrim(cast(SUM(CASE WHEN fi_order_status = '合同' and month(fi_order_date_alter)=month(fi_plan_date)  THEN 1 ELSE 0 END)  
          * 100.0 / a.[fi_plan] AS decimal(9, 2))) + '%',  
        SUM(CASE WHEN fi_company_dep = '展厅' AND fi_order_status = '申请' and month(fi_order_date_alter)=month(fi_plan_date)  THEN 1 ELSE 0 END) 展厅申请,  
        SUM(CASE WHEN fi_company_dep = '展厅' AND fi_order_status = '拒批' and month(fi_order_date_alter)=month(fi_plan_date)  THEN 1 ELSE 0 END) 展厅拒批,  
        SUM(CASE WHEN fi_company_dep = '展厅' AND fi_order_status = '取消' and month(fi_order_date_alter)=month(fi_plan_date)  THEN 1 ELSE 0 END) 展厅取消,  
        SUM(CASE WHEN fi_company_dep = '区域' AND fi_order_status = '申请' and month(fi_order_date_alter)=month(fi_plan_date)  THEN 1 ELSE 0 END) 区域申请,  
        SUM(CASE WHEN fi_company_dep = '区域' AND fi_order_status = '拒批' and month(fi_order_date_alter)=month(fi_plan_date)  THEN 1 ELSE 0 END) 区域拒批,  
        SUM(CASE WHEN fi_company_dep = '区域' AND fi_order_status = '取消' and month(fi_order_date_alter)=month(fi_plan_date)  THEN 1 ELSE 0 END) 区域取消,  
        SUM(CASE WHEN fi_company_dep = '电销中心' AND fi_order_status = '申请' and month(fi_order_date_alter)=month(fi_plan_date)  THEN 1 ELSE 0 END) 电销申请,  
        SUM(CASE WHEN fi_company_dep = '电销中心' AND fi_order_status = '拒批' and month(fi_order_date_alter)=month(fi_plan_date)  THEN 1 ELSE 0 END) 电销拒批,  
        SUM(CASE WHEN fi_company_dep = '电销中心' AND fi_order_status = '取消' and month(fi_order_date_alter)=month(fi_plan_date)  THEN 1 ELSE 0 END) 电销取消,  
        SUM(CASE WHEN fi_cxxb = '是' AND fi_order_status = '合同' and month(fi_order_date_alter)=month(fi_plan_date)  THEN 1 ELSE 0 END) 促销量
    FROM @tb_fi_plan a, @tb_fi b
    WHERE a.fi_company = b.fi_company_name 
          --AND year(b.fi_order_date_alter)= year(GetDate()) 
          --AND month(b.fi_order_date_alter) = month(GetDate())
    GROUP BY a.fi_company, year(fi_plan_date), month(fi_plan_date), a.fi_plan--修改后的结果:
    /*
    单店         计划数         年份          月份          展厅合同        区域合同   
    ---------- ----------- ----------- ----------- ----------- ----------- ----------- 
    城西别克       15          2012        8           0           2            
    南昌别克       30          2012        8           5           3            
    南昌别克       20          2012        9           1           0            
    南昌雪佛兰      27          2012        8           1           0           */
      

  11.   

    用convert(varchar(7),colname,120)=convert(varchar(7),t.colname,120) 就是年月都表示了。
    select convert(varchar(7),getdate(),120)
    /*
    2012-08
    */