将多列条目添加到单行

时间:2018-08-22 16:03:56

标签: sql vb.net

我在vb.net和SQL中有一个查询。

我有2张桌子

学生,其列类似

s_id, name, address, gender, contact, class, 

主题,其中包含以下列:

s_id, subject1
s_id, Subject2
s_id, Subject3

现在我想将结果合并为

s_id, name, address, gender, contact, class, subject1, subject2, subject3

每个学生。

请帮助我解决问题。

非常感谢...

1 个答案:

答案 0 :(得分:0)

不确定确切要寻找什么。检查是否有帮助。

Select s_id,name,address,gender,contact,class,Subject1,Subject2,Subject3
from
(
    SELECT stu.s_id,stu.name,stu.address,stu.gender,stu.contact,stu.class,sub.subject from Student stu
    join Subject sub on (stu.s_id = sub.s_id)
) p
PIVOT 
(
    COUNT(subject)
    FOR subject in ([Subject1],[Subject2],[Subject3])
) as pvt

以上查询将为您提供以下结果。 s_id名称地址性别联系人类别Subject1 Subject2 Subject3

1名称1地址1 F A 1 1 0

2 Name2 Address2 M A 0 0 1

3名称3地址3 F B 0 0 0

在此处检查-http://sqlfiddle.com/#!18/804a7/1