我試圖將最後一條記錄帶到組中。 這是我嘗試使用的查詢,但它將帶來組中的第一條記錄。sql查詢帶來組中的最後一條記錄
SELECT
"hba"."ID",
"hba"."session_number",
"hba"."u_c",
"hba"."u-v",
"hba"."date"
FROM "hba"
GROUP BY "hba"."ID","hba"."session_number"
任何幫助,非常感謝。
我試圖將最後一條記錄帶到組中。 這是我嘗試使用的查詢,但它將帶來組中的第一條記錄。sql查詢帶來組中的最後一條記錄
SELECT
"hba"."ID",
"hba"."session_number",
"hba"."u_c",
"hba"."u-v",
"hba"."date"
FROM "hba"
GROUP BY "hba"."ID","hba"."session_number"
任何幫助,非常感謝。
我在這裏猜測。它看起來像你的ID
字段是自動增加的。它看起來像你希望你的查詢爲session_number
的每個不同的值呈現一行,並且該行應該是最近插入的那一行(當你把它放在「最後一行」時)。
讓我們從檢索每個組的最近行的ID開始。
SELECT MAX(ID) AS ID, session_number
FROM hba
GROUP BY session_number
然後,讓我們用它作爲子查詢並將它加入到表中。
SELECT a.ID, a.session_number, u_c, u_v, date
FROM hba AS a
JOIN (
SELECT MAX(ID) AS ID, session_number
FROM hba
GROUP BY session_number
) AS b ON a.ID = b.ID
ORDER BY a.session_number
看看這是怎麼回事?首先定義「最後一行」的含義並構建一個子查詢來實現該定義。然後,使用該子查詢從主表中獲取所需的數據。然後你以可用的方式訂購最終結果集。
出於某種原因,您沒有在您的問題中透露您正在使用Crystal Reports。您可能會發現使用MySQL客戶端從您的數據庫創建包含所需信息的視圖很有幫助,然後使用Crystal從該視圖渲染結果集。
MAX()屬性不起作用,因爲Crystal報告給我一個錯誤,試圖在命令中輸入此查詢 – Dagz200 2014-10-09 19:26:01
SELECT "hba"."ID", "hba"."session_number", "hba"."u_c", "hba"."u-v", "hba"."date"
FROM "hba"
GROUP BY "hba"."ID","hba"."session_number" ORDER BY "hba"."ID" desc,"hba"."session_number" desc
是你所需要做的。 「
」什麼是「」所有「」「雙」「引號」?此外,將解釋「last」意味着什麼是有用的...... – 2014-10-09 18:33:12
某些工具以這種方式生成SQL。例如,Cognos就是這樣做的。讓我的頭受傷閱讀它。 – Andrew 2014-10-09 18:34:16
我刪除了SQL Server標記,因爲此查詢在SQL Server中(以及除MySQL以外的幾乎任何數據庫引擎中)都會失敗 – Lamak 2014-10-09 18:34:21