如何避免SQL中不明确的列错误?

如何避免SQL中不明确的列错误?,sql,Sql,从下面的代码中,我尝试将3个表合并在一起。在其中一个表格中,它包含每个项目完成的年份及其项目编号。我试图加入表,但只包含每个项目的最新版本。目前我遇到了“JobNO”列不明确的问题,而且“YearMonth”列中包含日期,存在一个错误。这个问题的最佳解决方案是什么 SELECT LoadId.JobNo, LoadId.YearMonth, LoadId.Phase, JobCost.Depth, JobCost.UOM, JobCost.CostCode, JobCost.Cost

从下面的代码中,我尝试将3个表合并在一起。在其中一个表格中,它包含每个项目完成的年份及其项目编号。我试图加入表,但只包含每个项目的最新版本。目前我遇到了“JobNO”列不明确的问题,而且“YearMonth”列中包含日期,存在一个错误。这个问题的最佳解决方案是什么

SELECT  LoadId.JobNo, LoadId.YearMonth, LoadId.Phase, JobCost.Depth, 
    JobCost.UOM, JobCost.CostCode, JobCost.CostCodeDesc, CostCat.Category, 
    CostCat.CurrentBudget,




FROM  CostCat INNER JOIN
      JobCost ON CostCat.JobCostID = JobCost.ID INNER JOIN  
      LoadId ON JobCost.LoadIdID = LoadId.ID INNER JOIN
      (SELECT JobNo, MAX(YearMonth) As MaxDate  FROM LoadId GROUP BY JobNo)
      LoadId2 ON LoadId.JobNo = LoadId2.JobNo AND LoadId.YearMonth = LoadId2.MaxDate  


GROUP BY JobNo, YearMonth, Phase, Depth, UOM, JobCost.CostCode, CostCodeDesc, Category, CostCat.CurrentBudget
如何避免SQL中不明确的列错误


答案很简单。您可以限定查询中的所有列引用。这包括
GROUP BY
子句和子查询。

用表名限定GROUP BY子句中的列名,就像select语句一样。如果对所有表使用简短但有意义的表别名,则限定所有引用会变得更简单。我是SQL新手。我已经确认了他们所有人的资格,但现在我得到了一个选择错误。它看起来像什么?@Apmartin。使用您正在使用的查询和错误文本提出新问题。