CREATE TABLE [dbo].[产品列表](
[公司简称] [char](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
[产品名称] [char](20) COLLATE Chinese_PRC_CI_AS NULL,
[产品别名] [char](20) COLLATE Chinese_PRC_CI_AS NULL,
[状态] [char](20) COLLATE Chinese_PRC_CI_AS NULL,
[结算状态] [char](20) COLLATE Chinese_PRC_CI_AS NULL,
[统计日期] [datetime] NULL,
[上线时间] [datetime] NULL,
[下线时间] [datetime] NULL,
[点击] [int] NULL,
[下载] [int] NULL,
[有效数据] [int] NULL,
[类型] [char](20) COLLATE Chinese_PRC_CI_AS NULL,
[合作模式] [char](10) COLLATE Chinese_PRC_CI_AS NULL,
[单价] [money] NULL,
[税务] [money] NULL,
[手续费] [money] NULL,
[后台地址] [char](50) COLLATE Chinese_PRC_CI_AS NULL,
[用户] [char](20) COLLATE Chinese_PRC_CI_AS NULL,
[密码] [char](50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[财务统计](
[公司简称] [char](20) COLLATE Chinese_PRC_CI_AS NULL,
[结算状态] [char](10) COLLATE Chinese_PRC_CI_AS NULL,
[月份] [char](10) COLLATE Chinese_PRC_CI_AS NULL,
[金额] [money] NULL,
[税务] [money] NULL,
[备注] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
想在产品列表里加个触发器
CREATE trigger [dbo].[cwtj] on [dbo].[产品列表]
for update,insert,delete
as
insert into 财务统计(公司简称,月份,金额,税务) select 公司简称,convert(varchar(7),cast(replace(replace(replace(统计日期,'年','-'),'月','-'),'号','') as datetime),120) 月份,sum(单价) 金额,税务 from 产品列表 where 产品列表.公司简称 is not in(select 公司简称 from 财务统计) and 产品列表.convert(varchar(7),cast(replace(replace(replace(统计日期,'年','-'),'月','-'),'号','') as datetime),120) 月份 is not in(select 月份 from 财务统计) group by 公司简称,convert(varchar(7),cast(replace(replace(replace(统计日期,'年','-'),'月','-'),'号','') as datetime),120),税务请问这句我该怎么改才对?

解决方案 »

  1.   

    not in 前边没有  is
      

  2.   

    产品列表.convert(varchar(7),cast(replace(replace(replace(统计日期,'年','-'),'月','-'),'号','') as datetime),120)应该是:convert(varchar(7),cast(replace(replace(replace(产品列表.统计日期,'年','-'),'月','-'),'号','') as datetime),120)
      

  3.   

    还有,insert,update,delete执行的语句一样?
      

  4.   

    CREATE trigger [dbo].[cwtj] on [dbo].[产品列表] 
    for update,insert,delete 
    as 
    insert into 财务统计(公司简称,月份,金额,税务) 
    select 公司简称,
    convert(varchar(7),cast(replace(replace(replace(统计日期,'年','-'),'月','-'),'号','') as datetime),120) 月份,
    sum(单价) 金额,税务 
    from 产品列表 
    where 产品列表.公司简称 not IN
    (select 公司简称 from 财务统计) 
    and convert(varchar(7),cast(replace(replace(replace(统计日期,'年','-'),'月','-'),'号','') as datetime),120) 
    not in(select 月份 from 财务统计) 
    group by 公司简称,convert(varchar(7),cast(replace(replace(replace(统计日期,'年','-'),'月','-'),'号','') as datetime),120),税务