【问题标题】:I need to write a SQL query which can fetch data and can b exported in XL sheet我需要编写一个可以获取数据并可以在 XL 表中导出的 SQL 查询
【发布时间】:2011-02-17 21:42:33
【问题描述】:

我需要编写一个可以获取数据并可以导出到 XL 表中的 SQL 查询。

场景

有两个表 A 和 B。B 是 A 的子表,并且存在一对多关系(意味着 B 可以有多个 A 的子表)。现在 B 有一个 C 列,它只能有两个值 1 或 2。

要求

我需要在报告中显示 - 对于表 A 的每条记录,“表 B 的 C 列中值为 1 的子记录数”计数,“表 C 列中值为 2 的子记录数”计数B”并计算“C列中子记录的总数”。

【问题讨论】:

  • 对于什么数据库?大多数都具有导出到 CSV 的功能,Excel 可以读取。
  • 更不用说导出为 CSV 的能力与问题的文本无关——这个问题似乎是关于如何编写 SQL 语句。
  • 我只想查询..如果它会以 CSV 格式获取数据,即使这样也没有问题。数据库是 ORACLE。

标签: sql


【解决方案1】:

可能是这样的:

select A.PK,
       sum(case when B.C = 1 then 1 else 0 end) as TotalC1,
       sum(case when B.C = 2 then 1 else 0 end) as TotalC2,
       count(B.C) as TotalChildren
    from A
        inner join B
            on A.PK = B.FK_to_A
    group by A.PK

【讨论】:

  • 打败我!你不会也需要按 A.PK 分组吗?
  • @mellamokb:仅当我希望查询正常运行时。 :-) 谢谢你的收获。
【解决方案2】:
select
    A.PK,
    sum(case when B.C = 1 then 1 else 0 end) as CountOf1,
    sum(case when B.C = 2 then 1 else 0 end) as CountOf2,
    count(B.C) as TotalCount
from
    A
inner join
    B on A.FK = B.PK
group by
    A.PK

【讨论】:

  • 非常感谢。我得到了结果。 :)
  • @Vikram:很高兴为您提供帮助。请将其中一个答案标记为正确答案,以帮助社区。​​span>
猜你喜欢
  • 2021-10-07
  • 1970-01-01
  • 2020-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
相关资源
最近更新 更多