【问题标题】:How to use pivot to add more columns across multiple tables?如何使用数据透视在多个表中添加更多列?
【发布时间】:2014-04-18 01:10:01
【问题描述】:

我有一张名为 employees 的表。存放员工信息的地方。但是,我也有名为 phone_types、phone_manager、email_types 和 email_manager 的表。

Phone_types 有以下列,phone_type_id,phone_type_name。

Phone_manager 具有以下内容:phone_id、employee_id、phone_number、phone_number_extension、phone_type、date_added、deleted。

电子邮件非常相似。

我要做的是将所有员工的所有相关信息获取到一个视图中,因此基本上所有员工表中的所有内容,以及他们所有的电话号码和电子邮件,都在一行中,针对每个员工。我该怎么做呢?请记住,员工实际上可以拥有几乎无限的电话。 (我们有 6 名员工)。

【问题讨论】:

  • 你能限制单个视图中显示的最大数量吗?例如,不超过 10 部手机?否则,您将需要某种动态 SQL 解决方案来生成列列表,这可行但很复杂。
  • 我想只做 3 部电话,家庭、工作、手机,并使用归档的 date_add 来显示最新的号码。这 3 个分别由 phone_type 1、2 和 3 的值实现。

标签: sql sql-server


【解决方案1】:

执行此操作的最简单方法是创建一个视图,将您的员工与电话类型、电话经理和电子邮件联系起来,其中包含您想要查看的所有输出列。然后使用 excel 将行数据转换为 cols。以下是有关如何执行此操作的众多示例之一:

http://www.spreadsheetsmadeeasy.com/excel-create-pivot-table-using-sql/

另一种方法是创建一个透视查询:

http://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx

【讨论】:

    猜你喜欢
    • 2017-06-29
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    相关资源
    最近更新 更多