日期:2014-05-17  浏览次数:20499 次

求帮助,一个聊天记录的数据查询
A B C
1 3 2012-11-11
1 3 2012-11-12
1 3 2012-11-13
3 1 2012-11-14
1 2 2012-11-15
4 1 2012-11-16

我想做一个聊天的记录查询。这个表是内关联,A关联B。我想查询,当我是1的时候,我给谁发过信息。发了多少条。
我想要的结果是:当我是1的时候,我的查询结果是,1给3发过信息(或者3给1回过信息),总数是4条。这里只能出现一条结果。比如1-3 count=4 或者3-1 count=4。而不能出现两条,1-3 count=4 并且 3-1 count=4。
就是这个重复这块我弄不明白怎么做了。求大家帮忙。

------解决方案--------------------


select * into #T from (
select 1 A, 3 B
union all select 1 ,3
union all select 1 ,3
union all select 3 ,1
union all select 1 ,2
union all select 4 ,1
)a


select * From #t

select a,b,sum(c)c from (
select a,b,count(1)c From #t where a=1 group by a,b
union
select b,a,count(1)c From #t where b=1 group by a,b
)a
group by a,b

/*
a           b           c
----------- ----------- -----------
1           2           1
1           3           4
1           4           1
*/