【问题标题】:SQL inner join on Microsoft SQL serverMicrosoft SQL 服务器上的 SQL 内连接
【发布时间】:2015-11-19 19:37:42
【问题描述】:

我有两个要在 MS SQL 上加入的 select 语句,但在 JOIN 和 ON 之前它因语法错误而失败。我哪里做错了?

SELECT Id, COUNT(Item) AS Count   FROM DB_1.dbo.table w 
GROUP BY Id, Item
JOIN 
(

SELECT Id, Path, Name FROM DB2.dbo.partition p 
GROUP BY Id, Path, Name
)  
ON w.Id = p.Id

【问题讨论】:

  • 您的群组位于错误的位置。把它移到最后。
  • 不清楚您要完成什么...您是否也想从分区表中选择路径/名称?或者您是否尝试将其用作存在过滤器?您的源数据是什么样的?您希望输出是什么样的?
  • @JiggsJedi - 我有一个两个表共有的 ID,第一个查询获取分区的 ID,第二个提供该分区的路径。 DenimChicken 的回答为我提供了想要的结果。谢谢!

标签: sql-server select join


【解决方案1】:

您需要连接第一个和第二个查询的结果。您还需要在子查询之外拥有别名(wp)。试试这个:

SELECT * FROM (
  SELECT Id, COUNT(Item) AS Count FROM DB_1.dbo.table 
  GROUP BY Id, Item) w
JOIN (
  SELECT Id, Path, Name FROM DB2.dbo.partition  
  GROUP BY Id, Path, Name
) p
ON w.Id = p.Id

【讨论】:

  • 哇牛仔鸡,你是最棒的!!!花了很多时间试图自己弄清楚,但我的 SQL 技能还不够好。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2016-02-16
  • 2012-07-18
  • 2011-06-11
  • 1970-01-01
  • 2017-04-15
  • 1970-01-01
  • 2017-09-28
相关资源
最近更新 更多