具有计数和联接的SQL查询中的动态列

约翰尼斯·辛兹(Johannes Hinz)

我在SQL Server 2008 R2中有两个表:表“阶段:

Phases_ID   Phases_Title
------------------------
1           Phase1
2           Phase2
...         ...

和表“里程碑”

Milestones_ID  Milestones_PhaseID  Milestones_Category
------------------------------------------------------
1              1                   Project
2              1                   Project
3              1                   Customer
...            ...                 ...

您可以看到这是表之间的1:n关系。

现在我需要一个查询,其结果是这样的:

Phases_ID   Project     Customer   (Columns 'Project' and 'Customer' counts milestones)
---------------------------------
1           2           1             
2           0           3
...         ...         ...

是否可以动态创建具有里程碑类别的列?否则,我将对表进行简单的左连接,并在后面的代码中进行其余操作,但是性能将是最差的。

谢谢!

是的!PIVOT进行救援:http : //technet.microsoft.com/zh-cn/library/ms177410(v=sql.105).aspx

尝试这样的事情:

SELECT Phases_ID, Project, Customer
FROM (
    SELECT Phases_ID, Milestones_PhaseID, Milestones_Category
    FROM Phases INNER JOIN Milestones ON Phases_ID = Milestones_PhaseID
) AS src
PIVOT (
    COUNT(*)
    FOR Milestones_Category IN ([Project], [Customer])
) AS pvt

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PostgreSQL查询带有动态列和联接的计数

来自分类Dev

具有2个联接和计数的SQL查询

来自分类Dev

SQL查询多个表,具有多个联接和带有逗号分隔列表的列字段

来自分类Dev

具有不同查询的SQL动态列

来自分类Dev

创建具有多个列和联接列的公式查询

来自分类Dev

SQL Server-具有联接和多重条件的查询

来自分类Dev

SQL查询-使用内部联接获取表中具有ID的多列总和

来自分类Dev

具有分页和计数的SQL Server查询

来自分类Dev

具有连接和计数的复杂SQL查询

来自分类Dev

具有多个内部联接的SQL查询返回错误的值计数

来自分类Dev

具有左联接的SQL查询联合

来自分类Dev

具有内部联接的SQL子查询

来自分类Dev

SQL Server查询具有日期的联接

来自分类Dev

SQL:联接具有计数,加法和更多限制的3个表

来自分类Dev

在SQL查询中具有值的动态列名

来自分类Dev

在SQL查询中具有值的动态列名

来自分类Dev

MySQL查询计数和联接

来自分类Dev

在具有X和Y的列中获取X的计数

来自分类Dev

具有子查询列的 Mysql 计数

来自分类Dev

有关MYSQL联接和计数的查询

来自分类Dev

SQL-查找列中具有最高计数的对象

来自分类Dev

具有左外部联接的X的SQL增量计数

来自分类Dev

具有2个内部联接的SQL计数

来自分类Dev

具有单个表的内部联接的SQL计数

来自分类Dev

SQL Pivot具有动态生成的列和聚合函数

来自分类Dev

如何改进具有多个联接和子查询的表上的摘要SQL?

来自分类Dev

SQL查询具有两个联接关系的单独列

来自分类Dev

具有内部联接的DISTINCT SQL查询从考虑因素中省略了一个列,

来自分类Dev

联接的SQL查询中的编辑列

Related 相关文章

热门标签

归档