2015-11-13 30 views
1

我具有包含日期/時間字段(DateSubmitted),一個LONG INTEGER字段的表(分數)和TEXT字段( )。SQL JOIN不工作的相同的數據類型

我運行,沒有任何問題下面的查詢(qry_REP_MonthlyReportedFigures):

SELECT  MONTHNAME(MONTH(DateSubmitted)) AS sMonth, 
      YEAR(DateSubmitted) AS lYear, 
      COUNT(*) AS CountOfReportedErrors 
FROM  tbl_QCErrorLog 
WHERE  Team = 'Some Team' 
GROUP BY MONTH(DateSubmitted), YEAR(DateSubmitted) 

我也運行此查詢,沒有任何問題(qry_REP_MonthReportedSeverityTotal):

SELECT  MONTHNAME(MONTH(DateSubmitted)) AS sMonth, 
      YEAR(DateSubmitted) AS lYear, 
      SUM(Score) AS SeverityTotal 
FROM  tbl_QCErrorLog 
WHERE  Team = 'Some Team' 
GROUP BY MONTH(DateSubmitted), YEAR(DateSubmitted) 

但是,如果我然後運行基於這兩個查詢的第三個查詢,它不會正確加入它們,我得到#錯誤ST.sMonth和空白/空在ST.lYearSeverityTotal

SELECT  RF.sMonth, 
      RF.lYear, 
      RF.CountOfReportedErrors, 
      ST.sMonth, 
      ST.lYear, 
      ST.SeverityTotal 
FROM  qry_REP_MonthlyReportedFigures RF LEFT JOIN qry_REP_MonthReportedSeverityTotal ST 
      ON RF.lYear = ST.lYear AND RF.sMonth = ST.sMonth 

我期望有能夠加入沒有問題,因爲所有的數據類型是相同的 - 他們是從畢竟同一個來源。

如果我只參加它的工作月份,但是如果我有不同年份的同一月份的數字,這會在多年的時間裏造成問題。如果我加入這一年,我會再次獲得#錯誤。現在

,如果我更新qry_REP_MonthReportedSeverityTotal SQL月份名稱轉換爲字符串,並在一年一個長整型一切正常:

SELECT  CSTR(MONTHNAME(MONTH(DateSubmitted))) AS sMonth, 
      CLNG(YEAR(DateSubmitted)) AS lYear, 
      SUM(Score) AS SeverityTotal 
FROM  tbl_QCErrorLog 
WHERE  Team = 'Some Team' 
GROUP BY MONTH(DateSubmitted), YEAR(DateSubmitted) 

所以,雖然我已經解決了這個問題,確實任何人都有任何想法爲什麼原始查詢不起作用?

編輯:現在非常困惑 - 我離開辦公室5分鐘,回來,現在它不工作,除非我把這兩個查詢字符串和長整數。

回答

1

爲什麼qry_REP_MonthlyReportedFigurestbl_QCErrorLog獲取數據,但是qry_REP_MonthReportedSeverityTotaltbl_QC_ErrorLog獲取數據?

該查詢應該給您預期的結果,而不JOIN

SELECT  MONTHNAME(MONTH(DateSubmitted)) AS sMonth, 
      YEAR(DateSubmitted) AS lYear, 
      COUNT(*) AS CountOfReportedErrors 
      SUM(Score) AS SeverityTotal 
FROM  tbl_QCErrorLog 
WHERE  Team = 'Some Team' 
GROUP BY MONTH(DateSubmitted), YEAR(DateSubmitted) 
+0

好去處 - 都意味着是'tbl_QCErrorLog'。這是因爲我使用Notepad ++來編寫SQL並將粘貼複製到Access - 這樣我就可以使SQL保持可讀格式,而無需Access就可以添加一百個括號和別名以及它喜歡做的所有其他垃圾。 –

+0

是的,該查詢工作。想想我正在調查查詢太多 - 前兩個查詢回答了我最終報告中的單獨問題,所以我沒有考慮到這些值。我想這就是當您通過現有的Powerpoint演示文稿(帶有Excel中的數字)並在Access中複製數字時發生的情況 - 我只是逐頁進行,而不是在觸摸鍵盤之前編譯所需的所有內容。 –

+0

不確定是否將此標記爲答案 - 它確實爲查詢提供了更好的解決方案,但沒有回答爲什麼兩個查詢無法在應該出現時加入的原因。 –