簡體   English   中英

如何在SELECT查詢中包含“訂單”或“索引”列?

[英]How to include an 'order' or 'index' column in a SELECT query?

我正在使用Access SQL 我想在我的查詢中添加一個column ,其行為類似於每個記錄的row number ,但由於我使用的是聚合函數,因此結果本身並不是id。 是否有任何函數可以為此生成一些行號? 甚至像Autonumber索引或只是訂單 所以我的虛擬SQL語法如下:

SELECT [wanted autonumber column], product,Sum(amount) FROM Invoices_Items GROUP BY product

我猜想如果我用自動編號列為這個查詢創建一個臨時表可能會很好,但我不知道如何做到這一點。

如果將GROUP BY SQL保存為Access中的命名查詢,則可以將其用作另一個SELECT語句的數據源,該語句使用相關子查詢生成行號。

所以這個SQL保存為qryInvoices_Items1 ...

SELECT i.product, Sum(i.amount) AS SumOfamount
FROM Invoices_Items AS i
GROUP BY i.product;

此查詢將添加動態行號---如果基礎Invoices_Items數據發生更改,則給定產品的行號可能會因一次運行而異。

SELECT
    (
        SELECT Count(*)
        FROM qryInvoices_Items1 AS q2
        WHERE q2.product <= q1.product
    ) AS row_number,
    q1.product,
    q1.SumOfamount
FROM qryInvoices_Items1 AS q1;

我在Access 2007中測試了SQL,它返回了我認為你正在尋找的結果。 但是,如果我對此有誤,請在您的問題中包含Invoices_Items樣本數據(作為文本,而不是屏幕截圖),並根據該樣本數據向我們顯示您想要的輸出。

請注意,相關子查詢要求db引擎分別為父查詢的結果集的每一行運行該子查詢。 這對於龐大的數據集來說將是一個巨大的性能挑戰。 但是,如果您的數據集足夠小,則可以容忍執行影響,甚至可能無法察覺。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM