我想創建一個從RECIPT表中獲取RECID的查詢,它是Customer表中的custname和RECIPT上的RECID的最大值。但不知何故,這個查詢會引發錯誤。當我添加max(MAX(REC.REC_Id_I)作爲RECID)時開始。如何在Join查詢中使用MAX()
查詢:
SELECT
REC.REC_Id_I,
REC.REC_No_V,
CUS.CUS_Name_V,
REC.REC_PaidAmount_M,
CASE
WHEN REC.REC_PayMode_C = 'C' THEN 'Cash'
ELSE 'Cheque'
END AS REC_PayMode_C,
REC.REC_BankName_V,
REC.REC_BankAddress,
REC.REC_ChequeNo_V,
convert(varchar, REC.REC_ChequeDate_D, 103) AS REC_ChequeDate_D,
REC.REC_Date_D,
MAX(REC.REC_Id_I) As RECID
FROM TBL_Receipts REC
JOIN TBL_CustomerMaster CUS ON REC.REC_CustomerId_I = CUS.CUS_Id_I
WHERE
REC_Active_c='y'
AND REC_SalesMasterId_I='0'
ORDER BY REC_Id_I
錯誤是:
消息8120,級別16,狀態1,過程sp_Receipt_Select,行15列 'TBL_Receipts.REC_Id_I' 在選擇列表中,因爲無效它不包含在聚合函數或GROUP BY子句中。
MSSQL不是MySQL。你需要明確地「GROUP BY」你的列。 –
@Juhana錯誤消息表明它是MSSQL。 MySQL會隱式地將GROUP BY作爲列。 –
與其他地方使用「GROUP BY」的方法相同。 –