我已经创建了一个表tblOperationLog并写了触发器来填充它作为用户删除,更新或插入我的主表中的一行。 这是删除和插入一个:加入3外部连接查询
CREATE TRIGGER FILL_TABLE
ON Person FOR INSERT, DELETE
AS
INSERT INTO tblOperationLog
SELECT SYSTEM_USER,
'user has inserted a row with ID = ' + Convert(nvarchar, inserted.id),
'Insert', CURRENT_TIMESTAMP, getdate()
FROM inserted
INSERT INTO tblOperationLog
SELECT SYSTEM_USER,
'user has deleted a row with ID = ' + Convert(nvarchar, deleted.id),
'Insert', CURRENT_TIMESTAMP, getdate()
FROM deleted
现在我想写一个程序,以显示平均操作的每一个用户在每一天做的。我想要在单独的列中获得每个操作的平均值(删除,插入和更新)。为了实现这个目标,我写了这些查询:
select A.Users , avg(A.[Number Of Inserts])as 'Number Of Inserts' from
(select Users,[Time],COUNT(*) as 'Number Of Inserts' from tblOperationLog where Opertion='Insert' group by Users, [Date]) A group by Users
go
select B.Users , avg(B.[Number Of Updates])as 'Number Of Updates' from
(select Users,[Date],COUNT(*) as 'Number Of Updates' from tblOperationLog where Operation='Update' group by Users, [Date]) B group by Users
go
select C.Users , avg(C.[Number Of Deletes])as 'Number Of Deletes' from
(select Users,[Date],COUNT(*) as 'Number Of Deletes' from tblOperationLog where Operation='Delete' group by Users, [Date]) C group by Users
Go
用上面的程序我在单独的表中显示每个操作。但我想把它们全部放在一张表中,我希望为那些没有删除或...操作0的用户提供平均值。你能帮我加入他们吗?我想我必须使用完全外连接。但每次在我的最终查询中出现错误。我使用SQL Server。
你能pleaese告诉我如何加入他们的行列,我使用它,但我不能得到的结果 – anna 2010-07-30 15:02:43
联合不工作,因为查询中的列名不相同 – anna 2010-07-30 15:54:58