另一个数据透视表查询
我想从一个表中相互没有关系的三个项目(除了它们是顺序的事实以外)并将它们放在一行上。另一个数据透视表查询
所以该表可能是这样的:
time show
12PM smallville
1PM House
2PM walking dead
我知道如何根据时间来获得三个项目,但我需要的答案是这样的:
col1 col2 col3
smallvile House walking dead
一切我有看到的是基于某种形式的关联使用select中的多个列,我没有这样的关联我只想要我选择显示在三列中的一行中的三件事。
如果这个问题是关于SLQ服务器,而不是Excel中,然后像下面是你在找什么:
Select [12PM],[1PM],[2PM],...
from (
select time, show from tablename
) as sourcetable
PIVOT (
Max(Show) for Time in [12PM],[1PM],[2PM],...
) as PivotTable
查看MSDN进一步参考上Pivot Tables。
哦。问题是“时间专栏”充满了将包含整个日程安排的时间表,我需要它选择当前时间和当前时间之后的两个节目。所以我不能做一个选择的时间。对不起,这是MYsql。谢谢! – 2011-05-05 20:29:07
也,我会扔掉时间信息。唯一重要的是演出名称。 – 2011-05-05 20:41:35
只需放置一个标识来操作数据透视表,下面的代码就是我的示例。希望能帮助到你。
CREATE TABLE #Temp (ID INT IDENTITY NOT NULL, [Time] VARCHAR(20), Show VARCHAR(100))
INSERT INTO #Temp ([Time] , Show)
SELECT '12PM', 'smallville' UNION SELECT '1PM', 'House' UNION SELECT '2PM', 'walking dead'
SELECT [1], [2], [3]
FROM (
SELECT Show, ID FROM #Temp
) As src
PIVOT
(Max(Show) FOR ID IN ([1], [2], [3])) AS pvt
解决方案,这将有很大的不同,这取决于你正在使用的数据库管理系统。例如,在SQL Server上工作的东西在MySQL或Oracle上不起作用,如果你在谈论Excel数据透视表,上面的解决方案都不会起作用。您需要提供更多信息。 – 2011-05-05 19:10:09
通常化妆品和演示文稿在应用程序代码中要容易得多 - 在php或python中需要1-2行。 – peufeu 2011-05-05 22:14:18
你可以修改我的下面的答案来达到你想要的:)快乐编码 – Japongskie 2015-09-23 03:39:46