Tsql 使用两个表选择多列中的值计数

Tsql 使用两个表选择多列中的值计数,tsql,Tsql,我对tsql还是个新手,正在试图弄清楚如何构建这个查询 我有两张桌子。其中一个叫做mirror,它有一个所有校园的官方列表,用于在webform上为用户填充校园下拉列表。然后,他们可以选择5个选项,当他们提交formRequest时,这些选项用他们的请求填充另一个表。例如,钟楼1、钟楼2……等 我试图构建一个页面来显示所有收集数据的最终结果。经过一些阅读,我想我可能需要使用PIVOT来实现这一点,但我无法让我的头看到查询 我可以对每一个选项1-5做一个初步的查询,但我有点希望它们都是空的或零的,

我对tsql还是个新手,正在试图弄清楚如何构建这个查询

我有两张桌子。其中一个叫做mirror,它有一个所有校园的官方列表,用于在webform上为用户填充校园下拉列表。然后,他们可以选择5个选项,当他们提交formRequest时,这些选项用他们的请求填充另一个表。例如,钟楼1、钟楼2……等

我试图构建一个页面来显示所有收集数据的最终结果。经过一些阅读,我想我可能需要使用PIVOT来实现这一点,但我无法让我的头看到查询

我可以对每一个选项1-5做一个初步的查询,但我有点希望它们都是空的或零的,因为有些学校没有被选中。 差不多

-单列简单计数 选择Campuschooce1,将*计为 根据要求 按钟楼分组1

或 -但这并没有给出我想要的结果,因为它没有考虑所有可能的选择。 选择Campuschooce1,计为, 钟楼2,算作, 钟楼3,算作, 钟楼4,算作, 钟楼5号,算为 从Operations.dbo.TransferRequest 按钟楼1、钟楼2、钟楼3、钟楼4、钟楼5分组


你知道我该怎么展示这个吗?至少在透视表方面,我的思路是否正确?

不确定我是否正确理解了您的问题,但假设您有以下几点:

CampusChoice  | Other data ...
------------------------------
CampusChoice1 | ...
CampusChoice2 | ...
CampusChoice1 | ...
然后,对于上面仅包含3行的示例,您希望得到以下最终结果:

CampusChoice1 | 2 | CampusChoice2 | 1 | CampusChoice3 | 0 | ...
实现这一点的T-SQL是:

select
    'CampusChoice1',
    sum( case when CampusChoice = 'CampusChoice1' then 1 else 0 end ) '#',
    'CampusChoice2',
    sum( case when CampusChoice = 'CampusChoice2' then 1 else 0 end ) '#',
    'CampusChoice3',
    sum( case when CampusChoice = 'CampusChoice3' then 1 else 0 end ) '#',
    ...
from
    ...

将总和与案例结合使用,为CampusChoice1的每一行求和1,为非CampusChoice1的每一行求和0,为每个CampusChoice1重复此操作。

此问题是否与c有关?对不起……我最终使用此查询来构建图表,或者可能只是c中的gridview。试图先把问题弄清楚。提示:使用适当的软件MySQL、Oracle、DB2等来标记数据库问题是很有帮助的。。。和版本,例如sql-server-2014。语法和功能的差异通常会影响答案。对不起。希望我能包括一个img,但我太新了。请求表是多个字段,如ID、时间戳、用户ID,然后是CampusChoice1、CampusChoice2、CampusChoice3……等等。每个都是一个varchar,上面有用户从表单上的下拉列表中选择的校园名称。别担心,告诉我我是否正确理解了这个问题。如果没有,我误解了什么?事实上,请求表中有5个col&113个校园id |。。。钟楼1 |钟楼2 |钟楼3 |等…-------------------------------------1 |... AAA元素| DDD元素| XXX MS 2 |。。。BBB要素| AAA要素| ZZZ HS 3 |。。。CCC要素| XXX MS | TTT要素