两行数据如何用SQL查询两列合并成一列条数据

sql中按时间多天数据合并成一条数据_百度知道
sql中按时间多天数据合并成一条数据
&nbsp,现在我要合并成李秋亮&nbsp,
&nbsp, &nbsp,jpg" esrc="http,CAN_S131128&nbsp, &nbsp, &nbsp,原始数据, &nbsp,//b,
&nbsp,hiphotos, &nbsp, &nbsp, &nbsp, &nbsp,//b, &nbsp, &nbsp,com/zhidao/wh%3D450%2C600/sign=9c2c4c0b950a304e5277a8fee4f88bb0/acb7d0a26dc73c92c9efab6,//b,, &nbsp,
提问者采纳
code,date,code
---CAN_S131128 ,到天。from tablegroup by name
,date,120) ----截取日期,reasron
---信用卡在线充值,count(name) ---随便一个列名,sum(value)
---充值的值,convert(varchar(10),木有列名,reasron,120) 没有调试过,语句是这样的。,我来随便定义下咯。select name
---李秋亮 ,convert(varchar(10),
提问者评价
其他类似问题
按默认排序
其他2条回答
count(name),id ,最近次数用max如果是oracle 可以这么做select name&nbsp,,&nbsp,sum(costs),交易时间(格式化到天) 进行聚合处理,,,请确认你的数据库类型 sqlserver 还是oracle,&nbsp,max(busi_code)from tablegroup by name&nbsp,,trunc(busi_date),大致思路 根据姓名,id ,type&nbsp,编号,次数用count,type&nbsp,业务类别,金额用sum,trunc(busi_date),
再新建一个表专门做统计,就像数据仓库的数据清理过程。
关键我SQl语句写不出来,写出来都执行不了.....
新建表:create table,新建后就不要再执行了, 统计时用group by,然后insert into newTable。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁请问将两个表中的数据合并到另一个表中的SQL语句如何写?
[问题点数:0分]
请问将两个表中的数据合并到另一个表中的SQL语句如何写?
[问题点数:0分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2003年7月 总版技术专家分月排行榜第三
2013年7月 荣获微软MVP称号2012年7月 荣获微软MVP称号2006年1月 荣获微软MVP称号2008年1月 荣获微软MVP称号2007年1月 荣获微软MVP称号2005年1月 荣获微软MVP称号2003年9月 荣获微软MVP称号
本帖子已过去太久远了,不再提供回复功能。Spring的事务能不能保证数据库的数据正确?该如何解决_SQL怎样合并表中两列的值为一列来显示,该如何解决_win7下CreateIpForwardEntry返回5010 请大仙帮忙?该如何解决__脚本百事通
稍等,加载中……
^_^请注意,有可能下面的2篇文章才是您想要的内容:
Spring的事务能不能保证数据库的数据正确?该如何解决
SQL怎样合并表中两列的值为一列来显示,该如何解决
win7下CreateIpForwardEntry返回5010 请大仙帮忙?该如何解决
Spring的事务能不能保证数据库的数据正确?该如何解决
Spring的事务能不能保证数据库的数据正确?并发N个线程去修改同一表的同一字段,在加了事务的情况下能不能保证数据库的数据正确。比如A表的b字段值为1,同时并发100个线程并且是分布式应用,50个将b字段+1,另外50个将b字段-1,会不会造成b最终不等于1呢?------解决方案--------------------
我为了确保万无一失,更新数据库的时候还用了LOCK TABLE,这样是不是多余了?我用的是mysql innodb
SQL怎样合并表中两列的值为一列来显示,该如何解决
SQL怎样合并表中两列的值为一列来显示现有个表:
有两列,都是varchar型,列名为:
我要把这两列的值合并起来变成一列(列名为C,该列原本是没有在表内的,我想用AS来定义生成,不知可否?)的值来显示,该怎样写SQL语句来生成这样的视图?
例如这样的结果来显示:
也就是想要加 "+ "号和 "= "号进去,不知可以吗? ------解决方案--------------------select a+ ': '+b as c from table1 就可以啦
win7下CreateIpForwardEntry返回5010 请大仙帮忙?该如何解决
win7下CreateIpForwardEntry返回5010 请大仙帮忙?关键代码如下:PMIB_IPFORWARDROW pRpRow = (PMIB_IPFORWARDROW) HeapAlloc(GetProcessHeap(),0,sizeof (MIB_IPFORWARDROW));memcpy(pRow, &(pForwardTable-&table[i]),sizeof (MIB_IPFORWARDROW));pRow-&dwForwardProto = ULONG(3);
//MIB_IPPROTTO_NETMGMT;dwStatus = CreateIpForwardEntry(pRow);
//这里返回5010 ,xp下运行是OK的。请大仙帮忙,先言谢过!发我一份Netioapi.h
win7 32Bit 的吧妖哥在哪里啊,救命啊!!!赶紧来人啊,我要结贴了,没有人过来结不了啊------解决方案--------------------
什么情况?文件还需要么?
如果您喜欢IT行业或者对IT行业感兴趣,想开拓技术视野,欢迎加入本站官方QQ群:,在群里认识新朋友和交流技术^_^
本站联系邮箱:求一条SQL的SELECT语句,用于在两个表中查询数据并把数据合并到一个新的临时表中。
[问题点数:20分,结帖人gzpydc]
求一条SQL的SELECT语句,用于在两个表中查询数据并把数据合并到一个新的临时表中。
[问题点数:20分,结帖人gzpydc]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。多行一列数据合并成一行一列数据-MS-SQLServer/应用实例-mssql-电脑编程网多行一列数据合并成一行一列数据-MS-SQLServer/应用实例作者:lxwin01 和相关&&需求比如有两张表一张表为候选人列表No UserName1
李四另一张表为候选人评论Id(自增主键)
test5结果No UserName Text1
test1,test2,test32
test4,test5------回答---------------其他回答(45分)---------
参考:SQL code
--生成测试数据
create table 表(部门 int,人员 varchar(20))
insert into 表 select 1,'张三'
insert into 表 select 1,'李四'
insert into 表 select 1,'王五'
insert into 表 select 2,'赵六'
insert into 表 select 2,'邓七'
insert into 表 select 2,'刘八'
go
--创建用户定义函数
create function f_str(@department int)
returns varchar(8000)
as
begin
declare @ret varchar(8000)
set @ret = ''
select @ret = @ret+','+人员 from 表 where 部门 = @department
set @ret = stuff(@ret,1,1,'')
return @ret
end
go
--执行
select 部门,人员=dbo.f_str(部门) from 表 group by 部门 order by 部门
go
--输出结果
/*
部门
--------------
1
张三,李四,王五
2
赵六,邓七,刘八
*/
--删除测试数据
drop function f_str
drop table 表
go
SQL code问题描述:
无论是在sql 2000,还是在 sql 2005 中,都没有提供字符串的聚合函数,
所以,当我们在处理下列要求时,会比较麻烦:
有表tb, 如下:
id
value
----- ------
1
ccc
需要得到结果:
id
values
------ -----------
1
aaa,bbb,ccc
即, group by id, 求 value 的和(字符串相加)
1. 旧的解决方法
-- 1. 创建处理函数
CREATE FUNCTION dbo.f_str(@id int)
RETURNS varchar(8000)
AS
BEGIN
DECLARE @r varchar(8000)
SET @r = ''
SELECT @r = @r + ',' + value
WHERE id=@id
RETURN STUFF(@r, 1, 1, '')
END
GO
-- 调用函数
SELECt id, values=dbo.f_str(id)
GROUP BY id
-- 2. 新的解决方法
-- 示例数据
DECLARE @t TABLE(id int, value varchar(10))
INSERT @t SELECT 1, 'aa'
UNION ALL SELECT 1, 'bb'
UNION ALL SELECT 2, 'aaa'
UNION ALL SELECT 2, 'bbb'
UNION ALL SELECT 2, 'ccc'
-- 查询处理
SELECT *
FROM(
SELECT DISTINCT
FROM @t
)A
OUTER APPLY(
[values]= STUFF(REPLACE(REPLACE(
SELECT value FROM @t N
WHERE id = A.id
FOR XML AUTO
), '&N value=&', ','), '&/&', ''), 1, 1, '')
)N
/*--结果
id
values
----------- ----------------
1
aaa,bbb,ccc
(2 行受影响)
--*/
--各种字符串分函数
--3.3.1 使用游标法进行字符串合并处理的示例。
--处理的数据
CREATE TABLE tb(col1 varchar(10),col2 int)
INSERT tb SELECT 'a',1
UNION ALL SELECT 'a',2
UNION ALL SELECT 'b',1
UNION ALL SELECT 'b',2
UNION ALL SELECT 'b',3
--合并处理
--定义结果集表变量
DECLARE @t TABLE(col1 varchar(10),col2 varchar(100))
--定义游标并进行合并处理
DECLARE tb CURSOR LOCAL
FOR
SELECT col1,col2 FROM tb ORDER BY
col1,col2
DECLARE @col1_old varchar(10),@col1 varchar(10),@col2 int,@s varchar(100)
OPEN tb
FETCH tb INTO @col1,@col2
SELECT @col1_old=@col1,@s=''
WHILE @@FETCH_STATUS=0
BEGIN
IF @col1=@col1_old
SELECT @s=@s+','+CAST(@col2 as varchar)
INSERT @t VALUES(@col1_old,STUFF(@s,1,1,''))
SELECT @s=','+CAST(@col2 as varchar),@col1_old=@col1
FETCH tb INTO @col1,@col2
END
INSERT @t VALUES(@col1_old,STUFF(@s,1,1,''))
CLOSE tb
DEALLOCATE tb
--显示结果并删除测试数据
SELECT * FROM @t
DROP TABLE tb
/*--结果
col1
col2
---------- -----------
a
1,2,3
--*/
GO
/*==============================================*/
--3.3.2 使用用户定义函数,配合SELECT处理完成字符串合并处理的示例
--处理的数据
CREATE TABLE tb(col1 varchar(10),col2 int)
INSERT tb SELECT 'a',1
UNION ALL SELECT 'a',2
UNION ALL SELECT 'b',1
UNION ALL SELECT 'b',2
UNION ALL SELECT 'b',3
GO
--合并处理函数
CREATE FUNCTION dbo.f_str(@col1 varchar(10))
RETURNS varchar(100)
AS
BEGIN
DECLARE @re varchar(100)
SET @re=''
SELECT @re=@re+','+CAST(col2 as varchar)
WHERE col1=@col1
RETURN(STUFF(@re,1,1,''))
END
GO
--调用函数
SELECT col1,col2=dbo.f_str(col1) FROM tb GROUP BY col1
--删除测试
DROP TABLE tb
DROP FUNCTION f_str
/*--结果
col1
col2
---------- -----------
a
1,2,3
--*/
GO
/*==============================================*/
--3.3.3 使用临时表实现字符串合并处理的示例
--处理的数据
CREATE TABLE tb(col1 varchar(10),col2 int)
INSERT tb SELECT 'a',1
UNION ALL SELECT 'a',2
UNION ALL SELECT 'b',1
UNION ALL SELECT 'b',2
UNION ALL SELECT 'b',3
--合并处理
SELECT col1,col2=CAST(col2 as varchar(100))
INTO #t FROM tb
ORDER BY col1,col2
DECLARE @col1 varchar(10),@col2 varchar(100)
UPDATE #t SET
@col2=CASE WHEN @col1=col1 THEN @col2+','+col2 ELSE col2 END,
@col1=col1,
col2=@col2
SELECT * FROM #t
/*--更新处理后的临时表
col1
col2
---------- -------------
a
1,2,3
--*/
--得到最终结果
SELECT col1,col2=MAX(col2) FROM #t GROUP BY col1
/*--结果
col1
col2
---------- -----------
a
1,2,3
--*/
--删除测试
DROP TABLE tb,#t
GO
/*==============================================*/
--3.3.4.1 每组 &=2 条记录的合并
--处理的数据
CREATE TABLE tb(col1 varchar(10),col2 int)
INSERT tb SELECT 'a',1
UNION ALL SELECT 'a',2
UNION ALL SELECT 'b',1
UNION ALL SELECT 'b',2
UNION ALL SELECT 'c',3
--合并处理
SELECT col1,
col2=CAST(MIN(col2) as varchar)
WHEN COUNT(*)=1 THEN ''
ELSE ','+CAST(MAX(col2) as varchar)
END
FROM tb
GROUP BY col1
DROP TABLE tb
/*--结果
col1
---------- ----------
a
3
--*/
--3.3.4.2 每组 &=3 条记录的合并
--处理的数据
CREATE TABLE tb(col1 varchar(10),col2 int)
INSERT tb SELECT 'a',1
UNION ALL SELECT 'a',2
UNION ALL SELECT 'b',1
UNION ALL SELECT 'b',2
UNION ALL SELECT 'b',3
UNION ALL SELECT 'c',3
--合并处理
SELECT col1,
col2=CAST(MIN(col2) as varchar)
WHEN COUNT(*)=3 THEN ','
+CAST((SELECT col2 FROM tb WHERE col1=a.col1 AND col2 NOT IN(MAX(a.col2),MIN(a.col2))) as varchar)
WHEN COUNT(*)&=2 THEN ','+CAST(MAX(col2) as varchar)
END
FROM tb a
GROUP BY col1
DROP TABLE tb
/*--结果
col1
col2
---------- ------------
a
3
--*/
GO
if not object_id('A') is null
drop table A
Go
Create table A([id] int,[cname] nvarchar(2))
Insert A
select 1,N'张三' union all
select 2,N'李四' union all
select 3,N'王五' union all
select 4,N'蔡六'
Go
--& --&
if not object_id('B') is null
drop table B
Go
Create table B([id] int,[cname] nvarchar(5))
Insert B
select 1,N'1,2,3' union all
select 2,N'3,4'
Go
create function F_str(@cname nvarchar(100))
returns nvarchar(100)
as
begin
select @cname=replace(@cname,ID,[cname]) from A where patindex('%,'+rtrim(ID)+',%',','+@cname+',')&0
return @cname
end
go
select [id],dbo.F_str([cname])[cname] from B
id
cname
----------- ----------------------------------------------------------------------------------------------------
1
张三,李四,王五
2
王五,蔡六
(2 Y料列受到影)
------其他回答(45分)---------
SQL code
create table tb (CardNo int,CardName varchar(10))
insert tb
select 001,
'AA' union all
select 001,
'BB' union all
select 001,
'CC' union all
select 002,
'DD' union all
select 002,
'EE' union all
select 003,
'FF'
go
CREATE FUNCTION dbo.f_tb(@id int))
RETURNS varchar(8000)
DECLARE @str varchar(8000)
SET @str = ''
SELECT @str = @str + ',' + CardName FROM tb WHERE CardNo=@id
RETURN STUFF(@str, 1, 1, '')
SELECT CardNo, CardName = dbo.f_tb(CardNo) FROM tb GROUP BY CardNo
drop table tb
drop function dbo.f_tb
------其他回答(5分)---------SQL code
create function GetText(@no int)
returns varchar(100)
as
begin
declare @sql varchar(100)
select @sql=isnull(@sql+',','')+[text] from 表2 where [no]=@no
return @sql
end
go
select distinct *,dbo.gettext(no) from 表1
------其他回答(5分)---------SQL code
--******************************************************************
--
--******************************************************************
表结构,数据如下:
----- ------
需要得到结果:
------ -----------
aaa,bbb,ccc
即:group by id, 求 value 的和(字符串相加)
1. 旧的解决方法(在sql server 2000中只能用函数解决。)
--===================================================================
create table tb(id int, value varchar(10))
insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2, 'ccc')
--1. 创建处理函数
CREATE FUNCTION dbo.f_strUnite(@id int)
RETURNS varchar(8000)
DECLARE @str varchar(8000)
SET @str = ''
SELECT @str = @str + ',' + value FROM tb WHERE id=@id
RETURN STUFF(@str, 1, 1, '')
-- 调用函数
SELECt id, value = dbo.f_strUnite(id) FROM tb GROUP BY id
drop table tb
drop function dbo.f_strUnite
----------- -----------
aaa,bbb,ccc
(所影响的行数为 2 行)
--===================================================================================
2. 新的解决方法(在sql server 2005中用OUTER APPLY等解决。)
create table tb(id int, value varchar(10))
insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2, 'ccc')
-- 查询处理
SELECT * FROM(SELECT DISTINCT id FROM tb)A OUTER APPLY(
SELECT [values]= STUFF(REPLACE(REPLACE(
SELECT value FROM tb N
WHERE id = A.id
FOR XML AUTO
), ' &N value=&', ','), '&/&', ''), 1, 1, '')
drop table tb
----------- -----------
aaa,bbb,ccc
(2 行受影响)
--SQL2005中的方法2
create table tb(id int, value varchar(10))
insert into tb values(1, 'aa')
insert into tb values(1, 'bb')
insert into tb values(2, 'aaa')
insert into tb values(2, 'bbb')
insert into tb values(2, 'ccc')
select id, [values]=stuff((select ','+[value] from tb t where id=tb.id
for xml path('')), 1, 1, '')
group by id
----------- --------------------
aaa,bbb,ccc
(2 row(s) affected)
drop table tb
相关资料:|||||||多行一列数据合并成一行一列数据-MS-SQLServer/应用实例来源网络,如有侵权请告知,即处理!编程Tags:                &                    

我要回帖

更多关于 sql 合并查询 的文章

 

随机推荐