SQL包查询问题
场景1:表中的数据
姓名得分
AAA 11
AAA 19
血脑屏障12
血脑屏障18
CCC 19
DDD 21
所需的查询结果如下
姓名得分
AAA 30
血脑屏障30
CCC 19
DDD 21
复制代码代码如下所示:
-清单是否存在
如果存在(SELECT * FROM sysobjects WHERE name = 'testsum)
testsum表
去
——创建一个表
创建表testsum
(
TID int主键标识(1,1),
Tname varchar(30)空,
tscor int空
)
去
插入testsum(tname,tscor)
select'aaa ',11
联盟的所有
select'aaa ',19
联盟的所有
select'bbb ',12
联盟的所有
select'bbb ',18
联盟的所有
select'ccc ',19
联盟的所有
select'ddd ',21
——查询语句
选择tname,和(tscor)从testsum组tname
-只有查询tscor总和为30
选择tname,和(tscor)从testsum组tname具有总和(tscor)
两情:
姓名得分
张三的语言30
张三数学50
张圣英语70
Li Si的语言50
Li Si数学80
Li Si English 90
预期查询结果:
命名中国数学英语
张三305070
Li Si 508090
复制代码代码如下所示:
-清单是否存在
如果存在(SELECT * FROM sysobjects WHERE name = 'testscore)
成绩表
去
——创建一个表
创建表的成绩
(
TID int主键标识(1,1),
Tname varchar(30)空,
Ttype varchar(10)空,
tscor int空
)
去
——插入数据
插入testScore值('zhang三','语言',90)
插入testScore值('zhang三、数学,20)
插入testScore值('zhang三','英语',50)
插入testScore值(李四','语言',30)
插入testScore值(李四、数学,47)
插入testScore值(李四','英语',78)
-查询
选择tname为名字,
马克斯(Ttype的语言,然后在其他tscor 0端)的语言,
马克斯(Ttype当数学那么tscor其他0端)的数学,
马克斯(Ttype当英语然后tscor其他0端)英语
从成绩
集团通过tname
情况三:
表:表
字段:id、名称
内容:
----
1、AAA
1、血脑屏障
2、CCC
2、DDD
3、EEE
3、FFF
—
希望的结果:
贸易数据交换
在1之间,类似于以下:
2 CCC DDD
3易FFF
复制代码代码如下所示:
F的存在(SELECT * FROM sysobjects WHERE name = 'test1)
表1
去
创建表的试验
(
TID int主键标识(1,1),
tnum int空,
Tname varchar(30)空
)
去
插入测试值(1,AA)
插入测试值(1,'BB')
插入测试值(2,'cc)
插入测试值(2,'dd)
插入测试值(3,'ee)
插入测试值(3,'ff)
SELECT * FROM(选择不同的tnum从test1)
一)
外部的应用(
选择tname =东西(替换(替换)(代替)
(
选择从test1 N tname
在tnum = a.tnum
FOR XML AUTO
,‘,',‘1, 1')。
n)
情况四:
我需要从表TB中获取数据,以便从下面的第二个表中获得数据。如何编写SELECT语句
测试表
标志类
---------- + --------- + -------- + ---------
121
221
341
452
532
641
721
832
942
1053
1151 B
1221 B
1331 B
1441 B
1523 B
1673 B
1732 B
1841 B
1951 B
2022 B
2111 B
2211 C
2323 C
2463 C
2532 C
…
您需要选择以下表,按类列进行分组,A1、A2和A3字段分别是标志= TB 1, 2和3的TB表中字段的和。
选择后
A1级A3
----------- + ------------ + ----------------- + --------------
求和(a)和(a)和(a)a
求和(a)和(a)和(a)b
求和(a)和(a)和(a)c
求和(a)和(a)和(a)d
求和(a)和(a)和(a)e
求和(a)和(a)和(a)f
求和(a)和(a)和(a)g
复制代码代码如下所示:
-清单是否存在
如果存在(SELECT * FROM sysobjects WHERE name = 'testflag)
testflag表
去
——创建一个表
创建表testflag
(
TID int主键标识(1,1),
Tname varchar(30)空,
tflag int空,
tscor int空
)
去
——插入数据
插入testflag(tname,tflag,tscor)
select'aaa,11
联盟的所有
select'aaa,2
联盟的所有
select'aaa,12
联盟的所有
select'aaa,1,18
联盟的所有
select'aaa,2
联盟的所有
select'aaa,21
联盟的所有
select'bbb,11
联盟的所有
select'bbb,2
联盟的所有
select'bbb,12
联盟的所有
select'bbb,1,18
联盟的所有
select'bbb,2
联盟的所有
select'bbb,21
——查询语句
选择不同的tname(选择和(tscor)从testflag哪里tflag = 1和testflag.tname = t.tname as'flag1(选择),和(tscor)从testflag哪里tflag = 2和testflag.tname = t.tname as'flag2(选择),和(tscor)从testflag哪里tflag = 3和testflag.tname as'flag3= t.tname)从testflag T组tname。tflag