① sql循环查询如何合并查询结果到一个表,每个结果表作为一个字段
简单写了一个sqlserver的
按照你说的建个表,放了点数据
createtable订单
(订单号int,
订单日期datetime,
订单价值int)
insertinto订单values(1,'2013-05-01',10)
insertinto订单values(2,'2013-05-01',20)
insertinto订单values(3,'2013-06-01',30)
insertinto订单values(4,'2013-06-01',40)
insertinto订单values(5,'2013-07-01',50)
insertinto订单values(6,'2013-08-01',60)
insertinto订单values(7,'2013-08-01',70)
insertinto订单values(8,'2013-09-01',80)
insertinto订单values(9,'2013-09-01',90)
insertinto订单values(10,'2013-10-01',100)
insertinto订单values(11,'2013-10-01',110)
insertinto订单values(12,'2013-11-01',120)
insertinto订单values(13,'2013-11-01',130)
insertinto订单values(14,'2013-12-01',140)
你要查上个月到之前某个月的
所以执行这个
declare@sqlvarchar(4000)
declare@indexint
set@index=2--这个就是你说的要查前某个月的,这里写2就代表9,10,11三个月
set@sql='select''汇总''as汇总'
select@sql=@sql+',sum(isnull(caseconvert(varchar(7),订单日期,120)when'''+convert(varchar(7),[订单日期],120)+'''then[订单价值]end,0))as
['+convert(varchar(7),[订单日期],120)+']'
from(selectdistinctconvert(varchar(7),订单日期,120)订单日期from[订单]where
convert(varchar(7),订单日期,120)>=convert(varchar(7),dateadd(month,(-1-cast(''+@index+''asint)),getdate()),120)
andconvert(varchar(7),订单日期,120)<convert(varchar(7),getdate(),120))asa
select@sql=@sql+'from[订单]'
exec(@sql)--这句我是执行sql,你可以直接把上句改成createtable的形式,把sql语句print出来,看看
结果
② sql合并两个查询结果
select a.pjID,a.pjName,a.累计开支费用,b.本月累计开支费用from ( 第一个语句放这里 ) a, ( 第二个语句放这里 ) bwhere a.pjID = b.pjID
③ SQL查询语句如何合并结果
用union all
select *
from (
select [TPADEA].DEA002 as 主物料名称,[TPADEA].DEA001 as 主物料编号,
[TPADEA].DEA057 as 主物料描述,[SGMQAB].QAB003 as 测试软件
from [ZCDZ].[dbo].[SGMQAB],[ZCDZ].[dbo].[TPADEA]
union all
SELECT DEA001 as 测试软件,DEA002 as 软件名称,DEA057 as 软件描述,
DEA036 as 软件版本
FROM [ZCDZ].[dbo].[TPADEA]
)a where [TPADEA].DEA001=[SGMQAB].QAB001
and [TPADEA].DEA002='M0011-101'
and [TPADEA].DEA001 like '1-D%'
and [SGMQAB].QAB003 like '6-%'
or DEA001='6-S01-151393-01'
大概这种格式,需要以怎样的格式输出再具体变换一下就行了
④ SQL中怎么把多查询结果合并成一条数据
oralce 10g 函数 wm_concat
select k_n1,k_n2,k_n3,k_n4,wm_concat(k_n5) from k_t where k_n1=1 and k_n2=1 and k_n3=1 and k_n4=1
运行结果如下:
1 1 1 1 5,4,3
⑤ sql语句 两条sql语句怎么合并在一起
方法/步骤
我用Toad做演示,我先新建两张table,
create table #AA(ID int,name nvarchar(10),age int)
create table #BB(ID int,name nvarchar(10),age int )
⑥ sql语句 如何合并查询结果
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法
SELECT column_name(s) FROM table_name1
UNION (ALL)
SELECT column_name(s) FROM table_name2
注:默认,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
⑦ sql 查询结果合并
这不是查询合并,一般说来我们所说的查询合并实际就是对同结构的结果集进行数据上的合并,站立的角度就是元组的合并。而列的“合并”这数据库的专业术语中叫查询连接。比如两表的链接等。
select * from A join B on A.primarykey = B.primarykey
这就是Trans-SQL语句进行的连接,也就是你所谓的列合并。
当然这种合并的基础是表,也就是可以合并表,视图与结果集(SQL语句)任何进行链接的。而你给出的第二个结果实际是错误的,从结果集中可以看是他不可能是一个合乎要求的东西的,因为域只表示数据,而不可以在域中说明其意思的,也就是说不能从一个域中就知道它是A的成绩还是B的成绩的。要想合乎要求,那么前边一定还有primarykey的,否则一个元组(也就是表中的一条记录)可能与另一条重复,也就是说一个元组不能标识一个实体,那么表就是无意义的。
SQL语句设计的原则就是以最少的运算实现想要的结果,也就是说SQL语句优化的宗旨就是最好少用一些无所谓的临时表,谓词,统计函数,游标等技术,除非是不得已,否则用这些技术并不能说明SQL技术有多好,只会增加SQL server的负担,对于多请求是浪费服务器资源。所以不要从不存在的两个中间结果进行所谓的合并,除非是视图,SQL server对视图有优化,可以作表用。而是直接考虑如何最快让服务器取出自己想要的结果,还要考虑服务器执行自己SQL语句的过程,以达到最快的速度。
⑧ 怎么合并两个sql语句的查询结果
Select id=1,name='李某某'
Union All Select 2,王某某
Union All Select 2,王某某
这样合并不会去重 不要all 内部会有个去重操作 但是有all时后效率比没all 高
Select id,name from table1
Union Select id,name from table2
Union Select id,name from table3
合并的语法是: select 列1,列2,列3,列n Union Select select 列1,列2,列3,列n
固定数据可以没有from table
⑨ SQL如何合并多个查询结果
合并结果一般用union或者union all,具体用什么取决于需求。
如数据如下:
A表:
id name
1 张三
2 李四
3 王五
B表:
id name
1 张三
2 赵六
3 孙七
如果
selectid,namefromA
unionall
selectid,namefromB;
结果:
id name
1 张三
2 李四
3 王五
1 张三
2 赵六
3 孙七
如果:
selectid,namefromA
union
selectid,namefromB;
结果:
id name
1 张三
2 李四
3 王五
2 赵六
3 孙七
也就是说union all在执行后,不会把相同的结果合并,而union会把相同的结果只显示成一行。