我具有包含日期/時間字段(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.lYear和SeverityTotal
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分鐘,回來,現在它不工作,除非我把這兩個查詢字符串和長整數。
好去處 - 都意味着是'tbl_QCErrorLog'。這是因爲我使用Notepad ++來編寫SQL並將粘貼複製到Access - 這樣我就可以使SQL保持可讀格式,而無需Access就可以添加一百個括號和別名以及它喜歡做的所有其他垃圾。 –
是的,該查詢工作。想想我正在調查查詢太多 - 前兩個查詢回答了我最終報告中的單獨問題,所以我沒有考慮到這些值。我想這就是當您通過現有的Powerpoint演示文稿(帶有Excel中的數字)並在Access中複製數字時發生的情況 - 我只是逐頁進行,而不是在觸摸鍵盤之前編譯所需的所有內容。 –
不確定是否將此標記爲答案 - 它確實爲查詢提供了更好的解決方案,但沒有回答爲什麼兩個查詢無法在應該出現時加入的原因。 –