簡體   English   中英

與表 2 中的 SELECT DISTINCT 左連接

[英]Left join with SELECT DISTINCT in table 2

我正在嘗試進行左連接。 表 1 具有唯一的 Financekey,並且在表 2 中所有行都是重復的(假設查詢返回 10k 行,但我想要 5k)。 我想在加入時刪除表 2 中的重復項。 上面的代碼給出了一個錯誤,但我不知道為什么——我在網上找到的所有解決方案都有相同的代碼,我找不到錯誤。 有任何想法嗎?

SELECT 
[XXX].[yyyyy].[Financekey]
      ,[XXX].[yyyyy].[CustomerKey]
      ,[XXX].[yyyyy].[ProfitCenterKey]

      ,[AAA].[bbbbb].[CompanyKey]
      ,[AAA].[bbbbb].[CompanyName]
      ,[AAA].[bbbbb].[ProfitCenterKey]


FROM [XXX].[yyyyy]
    LEFT JOIN (SELECT DISTINCT [CompanyKey]
      ,[CompanyName]
      ,[ProfitCenterKey]
      FROM [AAA].[bbbbb]) 
    ON [XXX].[yyyyy].[ProfitCenterKey]=[AAA].[bbbbb].[ProfitCenterKey]

消息 103010,第 16 級,State 1,第 1 行
第 43 行,第 2 列的解析錯誤:“ON”附近的語法不正確。

 SELECT 
   [XXX].[yyyyy].[Financekey]
  ,[XXX].[yyyyy].[CustomerKey]
  ,[XXX].[yyyyy].[ProfitCenterKey]

  ,zz.[CompanyKey]
  ,zz.[CompanyName]
  ,zz.[ProfitCenterKey]


 FROM [XXX].[yyyyy]
  LEFT JOIN 
  (
   SELECT DISTINCT [CompanyKey]
  ,[CompanyName]
  ,[ProfitCenterKey]
  FROM [AAA].[bbbbb]
 ) zz
ON [XXX].[yyyyy].[ProfitCenterKey]=zz.[ProfitCenterKey]

我建議您下次進一步混淆您的查詢。 通過aaa,bb,xx,qq對go非常有趣和有趣

看起來您需要為子查詢提供別名。 就像是:

SELECT 
[XXX].[yyyyy].[Financekey]
      ,[XXX].[yyyyy].[CustomerKey]
      ,[XXX].[yyyyy].[ProfitCenterKey]

      ,[AAA].[bbbbb].[CompanyKey]
      ,[AAA].[bbbbb].[CompanyName]
      ,[AAA].[bbbbb].[ProfitCenterKey]


FROM [XXX].[yyyyy]
    LEFT JOIN (SELECT DISTINCT [CompanyKey]
      ,[CompanyName]
      ,[ProfitCenterKey]
      FROM [AAA].[bbbbb]) AS [SSS]
    ON [XXX].[yyyyy].[ProfitCenterKey]=[SSS].[ProfitCenterKey]

我沒有測試這個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM