总结另一列枢转我有一个表(注:由同事使用Excel中导入)在访问包含这样的事情:访问SQL合并多个列,并且在合并塔
Associate | Date_Of_First_Call | Date_of_Second_Call | Date_of_Third_Call
Amy | 07/18/2017 | 07/19/2017 | 07/20/2017
Brian | 07/18/2017 | 07/18/2017 | 07/20/2017
Amy | 07/18/2017 | 07/20/2017 |
Carl | 07/19/2017 | 07/20/2017 | 07/21/2017
我非常新以SQL从我学会为止...
SELECT Date_Of_First_Call AS CallDate,
SUM(IIF(Associate ="Amy", 1, 0)) AS Amy,
SUM(IIF(Associate= "Brian", 1, 0)) AS Brian,
SUM(IIF(Associate="Carl", 1, 0)) AS Carl,
FROM table_name
GROUP BY Date_Of_First_Call
UNION
SELECT Date_Of_Second_Call AS CallDate,
SUM(IIF(Associate ="Amy", 1, 0)) AS Amy,
SUM(IIF(Associate= "Brian", 1, 0)) AS Brian,
SUM(IIF(Associate="Carl", 1, 0)) AS Carl,
FROM table_name
GROUP BY Date_Of_Second_Call
UNION
SELECT Date_Of_Third_Call AS CallDate,
SUM(IIF(Associate ="Amy", 1, 0)) AS Amy,
SUM(IIF(Associate= "Brian", 1, 0)) AS Brian,
SUM(IIF(Associate="Carl", 1, 0)) AS Carl,
FROM table_name
GROUP BY Date_Of_Third_Call
给我:
Call Date | Amy | Brian | Carl
07/18/2017 | 2 | 1 |
07/18/2017 | | 1 |
07/19/2017 | | | 1
07/19/2017 | 1 | |
07/20/2017 | 1 | | 1
07/20/2017 | 1 | 1 |
07/21/2017 | | | 1
关闭!但我想这不是以下:
Call Date | Amy | Brian | Carl
07/18/2017 | 2 | 2 |
07/19/2017 | 1 | | 1
07/20/2017 | 2 |1 | 1
07/21/2017 | | | 1
FYI:我能得到导致上述情况,如果我创建了三个独立的变换/透视查询并将其unioning成一个,但需要一共有四个查询。所以,如果有一种方法可以做到这一点,那将是惊人的!谢谢!
你真的应该读入数据库规范化。在表格的不同列中存储基本相似的信息是一种非常糟糕的做法。 –
谢谢你的评论Erik。然而,这三列中唯一的共同信息是它们是日期类型。每栏表示一位员工称为某人的日期,他们有三次机会接触某人:1)第一次约会,2)第二次约会,3)第三次约会。 – Mika
他们都引用电话,他们不是吗?你想总结它们的事实意味着它们是相关的。大多数'UNION'查询都是非标准化数据的指标。而你因此而陷入困境。如果你将这个规范化的存储,这个操作将需要更少的步骤,就像我将要演示的那样。如果您想对通话日期执行操作(例如,修正某个时区),则可能需要将其应用于所有这些列,而您只需将其应用于一个列。适当规范化后,最大3个呼叫的限制将被解除。 –