【发布时间】:2018-01-09 13:45:29
【问题描述】:
我在 SQL Server 中有两个表(我删除了很多行,但应该不会影响结果):
[dbo].[订单]:
CaseId Gender
-----------------
698 Female
694 Male
676 Female
659 Male
[dbo].[Plimplan]:
OrderID CaseID InfoID
--------------------------------------------
33425999 698 BBBBBE
33425984 694 AAAAAS
33425984 694 DSSSAS
33425609 694 BBBBBA
33425270 676 AAAAAA
33424973 676 AAAAAD
33424716 676 SASSAS
33424704 676 AAAAAA
33424500 676 BBBBBE
33424340 659 AAAAAA
33424281 659 BBBBBD
我想获得以下:
[dbo].[Plimplan]:
OrderID CaseID InfoID Gender
----------------------------------------------------
33425984 694 AAAAAS Male
33425270 676 AAAAAA Female
33424340 659 AAAAAA Male
让我们忘记加入。我可以从 [dbo].[Order] 中删除不需要的行:
SELECT TOP (100) MAX (OrderID) AS [OrderID]
,MAX (CaseID) AS [CaseID]
,MAX (InfoID) AS [InfoID]
/*,[Gender]*/
FROM [dbo].[Plimplan] as Plimpl
/* INNER JOIN [dbo].[Order] as Ord
ON Plimpl.CaseID = Ord.CaseID */
WHERE [InfoID] NOT LIKE 'BBBBB%'
and CaseID < 700
and CaseID > 600
GROUP BY (CaseID)
order by CaseID desc
但如果我删除 cmets 以完成加入,我会收到此错误:
消息 209,第 16 级,状态 1,第 3 行 不明确的列名称“CaseID”。
【问题讨论】:
-
你在下面有很好的答案,但我不禁想到,如果你只是用你的问题的标题在谷歌上搜索,你可以自己找到这个
-
我来这里之前做过。实际上我错过了复制粘贴中的别名,但我在除“SELECT”之外的所有地方都使用了它们,这导致了错误。我不明白我可以在代码中声明之前使用它们...
标签: sql-server join ambiguous