求助 一些sql的小问题
CREATE TABLE 超市交易报表
(交易时间 smalldatetime default( getdate()),
交易号 char (6),
商品号 tinyint,
商品单价 smallmoney,
数量 smallint,
PRIMARY KEY(交易时间,交易号,商品号)
)
CREATE TABLE 日报表
(时间 smalldatetime default( getdate()),
金额 smallint
)
CREATE TABLE 月报表
(时间 smalldatetime default( getdate()),
金额 smallint
)
CREATE TABLE 年报表
(时间 smalldatetime default( getdate()),
金额 smallint
)
create trigger qwer_tri
on 超市交易报表
for insert,update,delete
as
begin
insert into 日报表(时间,金额) select convert(varchar(10),交易时间,120),sum(商品单价*数量) from 超市交易报表 group by convert(varchar(10),交易时间,120)
insert into 月报表(时间,金额) select convert(varchar(7),交易时间,120),sum(商品单价*数量) from 超市交易报表 group by convert(varchar(7),交易时间,120)
insert into 年报表(时间,金额) select convert(varchar(4),交易时间,120),sum(商品单价*数量) from 超市交易报表 group by convert(varchar(4),交易时间,120)
end
INSERT INTO 超市交易报表 (交易号,商品号,商品单价,数量)
values ('000001','2',$32,'3')
------解决方案--------------------CREATE TABLE 超市交易报表
(交易时间 smalldatetime default( getdate()),
交易号 char (6),
商品号 tinyint,
商品单价 smallmoney,
数量 smallint,
PRIMARY KEY(交易时间,交易号,商品号)
)
go
CREATE TABLE 日报表
(时间 varchar(10),
金额 smallint
)
CREATE TABLE 月报表
(时间 varchar(7),
金额 smallint
)
CREATE TABLE 年报表
(时间 varchar(4),
金额 smallint
)
go
create trigger qwer_tri
on 超市交易报表
for insert,update,delete
as
begin
insert into 日报表(时间,金额) select convert(varchar(10),交易时间,120),sum(商品单价*数量) from 超市交易报表 group by convert(varchar(10),交易时间,120)
insert into 月报表(时间,金额) select convert(varchar(7),交易时间,120),sum(商品单价*数量) from 超市交易报表 group by convert(varchar(7),交易时间,120)
insert into 年报表(时间,金额) select convert(varchar(4),交易时间,120),sum(商品单价*数量) from 超市交易报表 group by convert(varchar(4),交易时间,120)
end
go
insert into 超市交易报表
select convert(smalldatetime,getdate()),'asd',5,23.3,3
go
select * from 日报表
select * from 月报表
select * from 年报表
/*
时间 金额
---------- ------
2012-12-02 70
(1 行受影响)
时间 金额
------- ------
2012-12 70
(1 行受影响)
时间 金额
---- ------
2012 70
(1 行受影响)
*/
go
drop table 超市交易报表,日报表,月报表,年报表