表A:
id col1 col2
-------------------
1 张三 23
2 李四 24表Bid col1 col2
-------------------
1 姓名 年龄即表A中的字段查出显示为表B中的字段内容,想要的结果如下:
id 姓名 年龄
-------------------
1 张三 23
2 李四 24请问如何做?
id col1 col2
-------------------
1 张三 23
2 李四 24表Bid col1 col2
-------------------
1 姓名 年龄即表A中的字段查出显示为表B中的字段内容,想要的结果如下:
id 姓名 年龄
-------------------
1 张三 23
2 李四 24请问如何做?
解决方案 »
- 面试题:大家仍砖头
- 怎样禁止在webblower控件内按下shift点击链接时打开新窗口
- some question about stream
- 怎样将dataGridView1.DataSource(tatatable) 传到dataset 中啊
- CommBuilder 的问题,谁能帮我看看啊
- Winform中的datagrid里,怎样把某列做成下拉框的形式?
- 求C#中能操作的视频控件
- 有没有温州的程序员,签名集会,留个联系方式,方便交流与工作
- 俄罗斯方块人工智能版+源码大公开
- C#中操作PowerPoint 能不能将一个ppt中的页复制到另一个ppt中
- 奇怪的问题,各位大哥请看---在线等待
- 怎样在.net dll程序集中输出函数供非托管C++等语言调用?
问题是这样的。。表A:
id username suject score
-------------------------------------
1 张三 语文 70
1 张三 数学 80
1 张三 英语 90
2 李四 数学 65
想要的结果如下:
id username 语文 数学 英语
--------------------------------------------
1 张三 70 80 90
2 李四 65这个好像是关于如何把表的行和列互转的问题
这个语句该如何写呢?请大家帮帮忙!
id,
username,
SUM(语文) 语文,
SUM(数学) 数学,
SUM(英语) 英语
FROM
(
SELECT
id,
username,
CASE suject WHEN '语文' THEN score ELSE 0 END 语文,
CASE suject WHEN '数学' THEN score ELSE 0 END 数学,
CASE suject WHEN '英语' THEN score ELSE 0 END 英语
FROM 表A
) b
GROUP BY id, username
ORDER BY id
CASE suject WHEN '语文' THEN score ELSE 0 END as 语文,
CASE suject WHEN '数学' THEN score ELSE 0 END as 数学,
CASE suject WHEN '英语' THEN score ELSE 0 END as 英语
FROM 表A
GROUP BY id, username
subject = '语文' THEN score END),
数学 = MAX(CASE WHEN subject = thetest.subject AND
subject = '数学' THEN score END),
英语 = MAX(CASE WHEN subject = thetest.subject AND
subject = '英语' THEN score END)
FROM test AS thetest
GROUP BY userid, username表的结构就不用多说了吧?