2015-04-20 17 views
0
SELECT dbo_job.job_date, 
     dbo_job.job, 
     dbo_job.suffix, 
     dbo_job.item, 
     qry_SumCost.SumMatlPlan, 
     qry_SumCost.SumMatlAct, 
     ([qty_released]*[fixovhd_rate])/[pcs_per_lbr_hr] AS lbr_cost_plan,  
     qry_LaborHours.fixovhd_t_lbr, 
     [fixovhd_t_lbr]/[qty_complete] AS [FG Actual Price] 
    FROM qry_SumCost 
    INNER JOIN (dbo_job 
     INNER JOIN qry_LaborHours 
      ON (dbo_job.job = qry_LaborHours.job) 
      AND (dbo_job.suffix = qry_LaborHours.suffix)) 
     ON (qry_SumCost.job_date = dbo_job.job_date) 
     AND (qry_SumCost.job = dbo_job.job) 
     AND (qry_SumCost.suffix = dbo_job.suffix) 
    GROUP BY dbo_job.job_date, 
      dbo_job.job, 
      dbo_job.suffix, 
      dbo_job.item, 
      qry_SumCost.SumMatlPlan, 
      qry_SumCost.SumMatlAct, 
      ([qty_released]*[fixovhd_rate])/[pcs_per_lbr_hr],     
      qry_LaborHours.fixovhd_t_lbr, 
      [fixovhd_t_lbr]/[qty_complete] 
    HAVING (((dbo_job.job_date) Between [Forms]![MainForm]![Text2] 
             And [Forms]![MainForm]![Text6]) 
       AND ((dbo_job.job) Like "BM0*" 
        Or (dbo_job.job)  Like "WT0*")); 

當我刪除的表達[fixovhd_t_lbr]/qty_complete]它工作正常,但是當我把它給它給我的錯誤「這種表達是鍵入錯誤,或者其過於複雜而無法評估,例如,數字表達式可能包含太多複雜的元素,請嘗試通過將表達式的部分分配給變量來簡化表達式。我不明白這可能被認爲是複雜的。該表達式的兩個元素直接來自兩個不同的表格,並且不是表達式本身(如果有人想知道)。我確信這是因爲通過消除的過程,我偶然發現了這個問題。我得到一個錯誤,在我的訪問查詢表達式是太複雜

+0

@Alan Stallwood感謝編輯,無法弄清楚如何做到這一點哈哈。 – DarthVoid

回答

1

您的查詢沒有意義。您正在使用group by,但沒有聚合功能。這意味着having子句中的條件可以移至where子句,您可以改爲使用select distinct

所以,也許這將解決你的問題:

SELECT DISTINCT dbo_job.job_date, 
     dbo_job.job, 
     dbo_job.suffix, 
     dbo_job.item, 
     qry_SumCost.SumMatlPlan, 
     qry_SumCost.SumMatlAct, 
     ([qty_released]*[fixovhd_rate])/[pcs_per_lbr_hr] AS lbr_cost_plan,  
     qry_LaborHours.fixovhd_t_lbr, 
     [fixovhd_t_lbr]/[qty_complete] AS [FG Actual Price] 
    FROM qry_SumCost INNER JOIN 
     (dbo_job INNER JOIN 
     qry_LaborHours 
     ON (dbo_job.job = qry_LaborHours.job) AND 
      (dbo_job.suffix = qry_LaborHours.suffix) 
     ) 
     ON (qry_SumCost.job_date = dbo_job.job_date) AND 
      (qry_SumCost.job = dbo_job.job) AND 
      (qry_SumCost.suffix = dbo_job.suffix) 
WHERE (((dbo_job.job_date) Between [Forms]![MainForm]![Text2] And 
            [Forms]![MainForm]![Text6]) And 
     ((dbo_job.job) Like "BM0*" Or (dbo_job.job) Like "WT0*")); 
相關問題