我有这样的查询结果:
Date User1 User2 User3 ....
----------------------------------
1/1/2000 55 78 98 ...
1/1/2001 26 33 56 ...
1/1/2002 88 67 12 ...
列数未知,因为它是数据透视查询的结果。
我想将列的名称更改为如下所示:
Date User1 (blue) User2 (green) User3(brown)
颜色是我从另一个表中检索到的信息。
我怎样才能做到这一点?
谢谢
编辑:这是查询。
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT distinct ',' + QUOTENAME(C.Name)
from [History]
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT [Date],' + @cols +'
from
(
select [Date], Name, Value
from [History]
) x
pivot
(
max(value)
for Name in (' + @cols + ')
) p '
execute(@query)
模式设置 :
create table history (date datetime, name varchar(10), value int);
insert history values
('20130101', 'user1', 123),
('20130101', 'user2', 124),
('20130101', 'user3', 125),
('20130102', 'user1', 223),
('20130102', 'user3', 223),
('20130103', 'user2', 323);
create table colours (name varchar(10), colour_name varchar(10));
insert colours values
('user1', 'blue'),
('user2', 'green'),
('user3', 'brown');
查询 :
DECLARE @scols nvarchar(max),
@cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX);
select @cols = STUFF((
SELECT ',' + QUOTENAME(C.Name)
from (select distinct name from [History]) C
ORDER BY C.Name
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,1,'');
select @scols = STUFF((
SELECT ',' + QUOTENAME(Name) + ' AS ' + QUOTENAME(colour_Name)
from (select distinct c.name, x.colour_name
from [History] C
JOIN colours x on x.name = c.name) y
ORDER BY Name
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'),1,1,'');
set @query = '
SELECT [Date],' + @scols +'
from (
select [Date], Name, Value
from [History]
) x
pivot
(
max(value)
for Name in (' + @cols + ')
) p ';
-- print @query --<< uncomment this line to see the query that gets generated
exec (@query);
| DATE | BLUE | GREEN | BROWN |
-------------------------------------------------------------
| January, 01 2013 00:00:00+0000 | 123 | 124 | 125 |
| January, 02 2013 00:00:00+0000 | 223 | (null) | 223 |
| January, 03 2013 00:00:00+0000 | (null) | 323 | (null) |
问题内容: 我有以下查询,该查询返回,商店编号及其区域以及2016年商店销售额的总和。 我将如何添加第四列,以总结每个商店所在区域的销售额。 每个区域有许多存储,因此,在相同区域中具有存储的每个ROW上,该值将相同。 希望我能解释清楚吗? 问题答案: 您可以使用窗口功能:
问题内容: 这个问题已经在这里有了答案 : 我可以使用PDO准备好的语句来绑定标识符(表或字段名)或语法关键字吗? (1个答案) 去年关闭。 是否可以在准备好的MySQL语句中将列名作为参数传递?请看以下示例: PDO 在每个参数周围添加,因此上面的中线变为: 哪个MySQL不喜欢。有没有一种方法可以在PDO语句中包含字段名的参数,并接受它们? 否则,我猜我将不得不编写一些不同的PDO语句,具体取
问题内容: 我正在从数据库中成功获取数据值。我也将它们存储到一个数组中。我需要将String数组作为项的加载,以响应执行的关键操作。每当获取按键值时,如何获取按键值,就如何重新加载项目。相反,我需要动态刷新项目。 问题答案:
问题内容: 我有一个包含3列的表,表头中具有以下值:“编号”,“ X [mm]”,“ Y [mm]”。该表包含以毫米为单位的点的坐标。我有一个复选框,用于检查应重新填充哪些表格以以英寸为单位显示坐标。此外,列标题值应为:“ No。”,“ X [in]”,“ Y [in]”。 简而言之,我想动态更改表格的标题文本。 详细信息:该表是JTable的子类。此外,已将“ DefaultTableModel
问题内容: 目前,我正在Spring Boot中基于REST的项目上工作。我在“ application.properties”文件中添加了api网址。 即 application.properties 以及来自Java的“ api-base-url”值访问。 在某些情况下,我需要动态更改“ api-base-url”。我已经动态更改了’api-base-url’的值并且可以正常工作。 但是我
问题内容: 我的问题是:如何更改标签中的文本?标签在布局内,但似乎不起作用-也许我做对了。 这是我的代码: 这是Main Windows GUI,一个Qt-Designer提供: 这是接口的逻辑: 我想在用户登录到程序后更改标签。我要更改的标签是,我想将其替换为,它对应于QLineEdits之一。 更新 我进行了您告诉我要做的所有更改,该项目看起来看起来井井有条,但是现在我得到了以下输出: Typ