【问题标题】:Merge SQL Queries for one result为一个结果合并 SQL 查询
【发布时间】:2016-02-12 13:18:27
【问题描述】:

我有两个 SQL 查询 (SQL Server),这给了我两个结果。我想合并这两个查询以获得一个整体结果。我尝试了许多排列,但似乎没有一个起作用。这是两个查询:

SELECT DATEPART(YEAR,fld_one) [Year], DATEPART(QUARTER,fld_one) [Quarter], COUNT(1) [Licenses] FROM tbl_licenses GROUP BY DATEPART(YEAR,fld_one),DATEPART(QUARTER,fld_one) ORDER BY 1,2

SELECT fld_company FROM tbl_licenses WHERE fld_quantity = (SELECT MAX(fld_quantity) FROM tbl_licenses)

基本上我希望 fld_quantity 值出现在 YEARQUARTERLICENSES 旁边的列中。

任何帮助将不胜感激。

【问题讨论】:

  • 向我们展示示例表数据,以及预期的结果!
  • 发布示例数据 - 此外,如果您希望“fld_quantity”出现在您的第一个查询的行旁边,您需要解释哪些列与两个数据集相关。换句话说,我们如何知道您的第一个查询中的哪些行与您的第二个查询中的行相关?
  • “我已经尝试了许多排列”,它们是什么?没有必要人们仅仅因为你没有排除他们而重复这些。
  • 将查询 1 放入 #temp 表中,然后将查询 2 加入其中。
  • @DaveKelly CTE 会更干净(并且可能性能更高;我不知道)。

标签: sql sql-server merge


【解决方案1】:

从外观上看,您需要一个主键和一个外键,或者至少需要两列可以进行 SQL 连接,例如日期、ID 等。

尝试类似:Select * from tbl_licenses INNER JOIN tbl_licenses_v4 ON tbl_licenses_v4.ID = tbl_licenses.ID

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    相关资源
    最近更新 更多