读书人

双表联合查询一次得到最后结果的SQL

发布时间: 2012-03-20 14:01:10 作者: rapoo

双表联合查询,一次得到最后结果的SQL语句怎么写?
表1 :
A 北京
B 重庆
C 上海

表2 :
1 A
2 B
3 A
4 C
5 C

先在表2中查询,
结果:
A 出现2次
B 出现1次
C 出现2次

再做一次查询,替换城市代码,最后结果是这样:
北京 出现2次
重庆 出现1次
上海 出现2次

一次得到最后结果的SQL语句怎么写?
谢谢。




[解决办法]
SELECT A.NAME,COUNT(B.ID) AS 次数 FROM T1 A,T2 B WHERE A.ID=B.ID GROUP BY A.NAME
[解决办法]

SQL code
declare @表1 table (col varchar(1),name varchar(4))insert into @表1select 'a','北京' union allselect 'b','重庆' union allselect 'c','上海'declare @表2 table (id int,col varchar(1))insert into @表2select 1,'a' union allselect 2,'b' union allselect 3,'a' union allselect 4,'c' union allselect 5,'c'select distinct b.name,次数='出现'+ltrim((select count(1) from @表2 where col=a.col))+'次' from @表2 a left join  @表1 b on a.col=b.col/*name 次数---- ------------------北京   出现2次上海   出现2次重庆   出现1次*/
[解决办法]
SQL code
create table T1  (col varchar(1),name varchar(4))insert into T1 select 'a','北京' union allselect 'b','重庆' union allselect 'c','上海'create table T2  (id int,col varchar(1))insert into T2select 1,'a' union allselect 2,'b' union allselect 3,'a' union allselect 4,'c' union allselect 5,'c'select T1.[name],'出现'+convert(varchar(10),count(1))+'次'from T1,T2 where T1.col=t2.colgroup by T1.[name]
[解决办法]
探讨
请问3楼在SQL语句中创建的表,
在哪里可以查看到表数据?

谢谢。

[解决办法]
SQL code
create table 表1  (col varchar(1),name varchar(4))insert into 表1 select 'a','北京' union allselect 'b','重庆' union allselect 'c','上海'create table 表2  (id int,col varchar(1))insert into 表2select 1,'a' union allselect 2,'b' union allselect 3,'a' union allselect 4,'c' union allselect 5,'c'select a.name,'出现'+cast(count(*) as varchar(5))+'次' as 次数 from 表1 a join 表2 b on a.col=b.col group by a.name 结果为:name    次数北京    出现2次上海    出现2次重庆    出现1次(3 行受影响) 

读书人网 >SQL Server

热点推荐