sql - 在 SQL 中将多列转换为一列但多行
问题描述
我有以下表结构:
cod_chestionar IT HR data_lansare
3GDH 9.83 9.32 6.12.2017
4XW6 9.14 9.89 6.11.2017
5Y7R 9 10 10.11.2017
DGVR 9.05 9.9 6.12.2017
我想获得以下内容:
cod_chestionar dep nota an luna data_lansare
3GDH IT 9.83 2017 12 6.12.2017
4XW6 IT 9.14 2017 11 6.11.2017
5Y7R IT 9 2017 11 10.11.2017
DGVR IT 9.05 2017 12 6.12.2017
3GDH HR 9.32 2017 12 6.12.2017
4XW6 HR 9.89 2017 11 6.11.2017
5Y7R HR 10 2017 11 10.11.2017
DGVR HR 9.9 2017 12 6.12.2017
我获取第一种格式的查询是:
SELECT DISTINCT
Cod_Chestionar,
ROUND(AVG(CAST(Intrebare1 AS FLOAT)), 2) AS It,
ROUND(AVG(CAST(Intrebare2 AS FLOAT)), 2) AS Hr,
CAST(DAY(Data_Introducere) AS VARCHAR)+'.'+CAST(MONTH(Data_Introducere) AS VARCHAR)+'.'+CAST(YEAR(Data_Introducere) AS VARCHAR) AS Data_Lansare
FROM Personal AS P,
Suport_Depart,
Email_Suport AS E
WHERE E.Cod_Email = Suport_Depart.Cod
AND E.Email = P.Email
AND Intrebare1 != 'Nu interactionez'
AND Intrebare2 != 'Nu interactionez'
GROUP BY Cod_Chestionar,
Data_Introducere;
请不要介意旧的sql格式,我写的很着急。任何建议将不胜感激。
解决方案
SELECT DISTINCT
Cod_Chestionar,
Dep = 'IT',
Nota = ROUND(AVG(CAST(Intrebare1 AS FLOAT)), 2),
Luna = MONTH(Data_Introducere),
CAST(DAY(Data_Introducere) AS VARCHAR)+'.'+CAST(MONTH(Data_Introducere) AS VARCHAR)+'.'+CAST(YEAR(Data_Introducere) AS VARCHAR) AS Data_Lansare
FROM Personal AS P,
Suport_Depart,
Email_Suport AS E
WHERE E.Cod_Email = Suport_Depart.Cod
AND E.Email = P.Email
AND Intrebare1 != 'Nu interactionez'
AND Intrebare2 != 'Nu interactionez'
GROUP BY Cod_Chestionar,
Data_Introducere
UNION ALL
SELECT DISTINCT
Cod_Chestionar,
Dep = 'HR',
Nota = ROUND(AVG(CAST(Intrebare2 AS FLOAT)), 2),
Luna = MONTH(Data_Introducere),
CAST(DAY(Data_Introducere) AS VARCHAR)+'.'+CAST(MONTH(Data_Introducere) AS VARCHAR)+'.'+CAST(YEAR(Data_Introducere) AS VARCHAR) AS Data_Lansare
FROM Personal AS P,
Suport_Depart,
Email_Suport AS E
WHERE E.Cod_Email = Suport_Depart.Cod
AND E.Email = P.Email
AND Intrebare1 != 'Nu interactionez'
AND Intrebare2 != 'Nu interactionez'
GROUP BY Cod_Chestionar,
Data_Introducere;
推荐阅读
- amazon-web-services - Sagemaker 推理管道 - 自定义容器无法通过 ping 检查,但未发送 ping 请求?
- memory-management - msync 性能是否取决于所提供范围的大小?
- react-native - Victory Native (React Native) - VictoryLine - 当 y 值超出限制时更改线条颜色
- angular - 是否有任何提示可以解决“服务命令需要在 Angular 项目中运行,但找不到项目定义”错误。
- php - 购物车中的税/价格计算混乱
- python - 在柯南中覆盖 user_info
- mocha.js - WDIO 未在密码文本换行字段中输入值[React native web]
- excel - 如何在 VBA 中使用宏获取最后记录数据
- google-cloud-ml - AutoML 训练管道作业失败。我在哪里可以找到日志?
- azure - 如何使用 Azure Powershell Runbooks 检查 Azure VM 中的 SSL 到期情况