我有一张表,可以存储对幸福问题的回答。结构是:获得调查答案矩阵的回复数
Wellbeing(WellbeingId, WellbeingDate, Q1, Q2, Q3, Q4, Q5, Q6, Q7...)
+------------+---------------+----+----+----+
|WellbeingId | WellbeingDate | Q1 | Q2 | Q3 |...
+============+===============+====+====+====+
|1 | 01/01/2015 | 1 | 1 | 5 |
+------------+---------------+----+----+----+
|2 | 10/01/2015 | 3 | 3 | 2 |
+------------+---------------+----+----+----+
|3 | 18/01/2015 | 2 | 4 | 1 |
+------------+---------------+----+----+----+
WellbeingResponses(ResponseId,responseText的)
+-----------+---------------------+
|ResponseId | ResponseText |
+===========+=====================+
|1 | 'None of the Time' |
+-----------+---------------------+
|2 | 'Rarely' |
+-----------+---------------------+
|3 | 'Sometimes' |
+-----------+---------------------+
|4 | 'Most of the time' |
+-----------+---------------------+
|5 | 'All of the time' |
+-----------+---------------------+
每个Q
列具有1
和5
(含)之间的值。这些值链接到关联文本的另一个表(即1 =不是很多,5 =所有时间等)。
我想从SQL Server获取数据作为每个数据库的总数可能响应值,如下所示:
+-------------------+----------+----------+-------------+
|Response | Q1 Total | Q2 Total | Q3 Total ...|
+===================+==========+==========+=============+
|'None of the Time' | 500 | 256 | 546 |
+-------------------+----------+----------+-------------+
|'Rarely' | 500 | 256 | 546 |
+-------------------+----------+----------+-------------+
|'Sometimes' | 500 | 256 | 546 |
+-------------------+----------+----------+-------------+
我试图选择出的数据的各个位,并使用UNION ALL它但只是堆叠的数据作为从各7“Q的每一个的5个值的计数“列,也尝试调整我在某处找到的数据透视查询,但在尝试使用动态数据查找从WellbeingResponses
表中选择列的数据时无法计算出该数据。
任何帮助将不胜感激。
编辑:增加幸福感反应表。
感谢您的理解,我会研究跨应用(不是用来作为数据库查询的新手)。我可能不得不查看是否可以对数据库进行重组,以便更轻松地进行操作......尽管这意味着要在网站上更改一些内容。 – bowfinger 2015-03-02 17:31:29
@bowfinger我添加了一个替代解决方案,使用多个连接。最大的问题是你目前的结构,很难合作。 – Taryn 2015-03-02 17:32:47
我认为这是我最初尝试这样做的方式,但是我先从Wellbeing表中选择,然后将内部联接(因为没有值永远不能为null)到WellbeingResponses表。它看起来很肮脏和低效......可能是重组的原因。在您的原始答案中,我将在哪里添加ORDER BY子句以获得1至5的响应文本? – bowfinger 2015-03-02 17:46:54