访问数据库子选择

时间:2018-01-19 13:48:47

标签: sql ms-access

我可以对查询使用一点帮助。我知道出了什么问题,但我不知道如何解决它。我正在尝试返回工作条件以及前几天在当前记录的子选择中的工作。我得到的是每个船员的一整天(相同的价值)。我认为错误的是对所有记录执行子选择并返回每个工作人员的最新数量。我不确定如何将当前行ID传递给subselect,以便仅返回当前工作人员的前几天工作。查询作为独立查询工作,但我想将它们合并为一个。

SELECT Spread_Crew.Description
     , Sum(Abs(Daily_Progress.Station_Number_
           Begin_Daily_Progress.Station_Number_End)) AS [Feet Total]
     , Spread_Crew.Hourly_Employee_Count AS [Hourly]
     , Spread_Crew.Salary_Employee_Count AS [Salary]
     , (Spread_Crew.Hourly_Employee_Count + 
        Spread_Crew.Salary_Employee_Count)*10 AS [Weekly Hours]
     , (Date() -  Spread_Crew.Actual_Start_Date) AS [Crew Days to Date]
     , Round(([Feet Total]/ [Crew Days to Date]),0) AS [FT/Day]
     , (SELECT Sum(Abs(Daily_Progress.Station_Number_Begin 
                       Daily_Progress.Station_Number_End)) 
        FROM Spread_Crew INNER JOIN Daily_Progress ON Spread_Crew.ID =
             Daily_Progress.Spread_Crew_Id
       WHERE (((Daily_Progress.PROGRESS_DATE)=[Report Date]))
              ) AS [Previous Footage]
FROM Spread_Crew LEFT JOIN Daily_Progress ON Spread_Crew.ID = 
     Daily_Progress.Spread_Crew_Id
GROUP BY Spread_Crew.Description
      , Spread_Crew.Hourly_Employee_Count
      , Spread_Crew.Salary_Employee_Count
      , Spread_Crew.Sort_Order
      , Spread_Crew.Print_On_Daily_Report
      , Spread_Crew.Actual_Start_Date
HAVING (((Spread_Crew.Print_On_Daily_Report)=True))
ORDER BY Spread_Crew.Sort_Order;

1 个答案:

答案 0 :(得分:0)

您的子查询可能希望成为相关子查询:

$.ajax({
  url: "http://localhost:1990/confluence/rest/api/content",
  headers: "Basic=" + GET_SOMEHOW_ACCESS_TOKEN,
  success: function(html){
      console.log(html)
  }
 });

表达式 (SELECT Sum(Abs(dp.Station_Number_Begin - dp.Station_Number_End)) FROM Daily_Progress as dp WHERE Spread_Crew.ID = dp.Spread_Crew_Id AND dp.PROGRESS_DATE = [Report Date] ) AS [Previous Footage] 引用外部Spread_Crew.ID中的列。