进行在另一列中显示结果的查询 [英] Make a query that show result in another column

查看:29
本文介绍了进行在另一列中显示结果的查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一张这样的桌子:

id - name - referred_id - referred_name
1  - mark -   100  -      nick
2  - david-   100  -      nick 
3  - mat -    100  -      nick
4  - patrik-  101  -      robert
5  - mick -   101  -      robert

我使用此查询来显示引用名称的结果:

i use this query to show result for referred name:

SELECT member_id,f_name,l_name,active_status,refered_by From Act_Reg where refered_by='nick'

查询运行良好并返回:

id - name
1  - mark
2  - david
3  - mat

现在,我想在网格中将结果显示为行和列:像这样

now, i want to show results in a grid as row and coloumn :like this

id - referred_id - referred_name - refers(name of refers)
1  -  100        - nick          - mark , david , mat
2  -  101        - robert        - patrik , mick

我的目标是任何介绍过作为报告的人,例如:尼克介绍了马克、大卫、垫子我使用访问作为数据库,谢谢大家

My goal is that anyone who has introduced as report,for example: nick introduced mark,david,mat I use a access as database, thanks all

推荐答案

既然你没有提到哪个 RDBMS,我正在为 SQL-Server 提供解决方案:

Since you are not mentioning about which RDBMS, I'm providing solution for the SQL-Server:

SELECT ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS Id, 
       referred_id, 
       referred_name, 
       STUFF((SELECT ', ' + CAST(name AS VARCHAR(10)) [n]
         FROM TestTable 
         WHERE referred_id = t.referred_id
         FOR XML PATH(''), TYPE)
        .value('.','NVARCHAR(MAX)'),1,2,' ') name
FROM TestTable t
GROUP BY referred_id, referred_name;

输出:

Id  referred_id     referred_name   name
1   100             nick            mark, david, mat
2   101             robert          patrik, mick

工作演示:http://rextester.com/ICC58106

更新:

如果您想将结果发送给特定的referred_user,则需要在GROUP BY 之前添加WHERE 子句:

In case if you want to get the results to the specific referred_user then you need to add the WHERE clause before the GROUP BY:

WHERE referred_name = 'nick'

这篇关于进行在另一列中显示结果的查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆