簡體   English   中英

計算隱藏列的總和

[英]Calculate a sum from hidden columns

我有一張桌子,看起來像:

在此處輸入圖片說明

行使價基本上可以算出OrdersTaken-OrdersFrom,但是我不希望顯示這兩列,所以我只想代碼+行使價調用

但是當我禁用show時,它會提示我要求輸入數字,因此它不再能找到它了?

在此處輸入圖片說明

我的查詢看起來像:

SELECT T_Temp_RestrictedDiaryCalls.AccreditedDomainCode,
    Count(T_Temp_RestrictedProductSalesHistory.CustomerCode)
        AS OrdersTaken, qry_TargetReports.CountOfCustomerCode 
        AS OrdersFrom, [OrdersTaken]-[OrdersFrom] 
        AS [Strike Rate (Calls)]

    FROM qry_TargetReports 
        INNER JOIN (T_Temp_RestrictedDiaryCalls
        INNER JOIN T_Temp_RestrictedProductSalesHistory 
            ON (T_Temp_RestrictedDiaryCalls.CallDate = T_Temp_RestrictedProductSalesHistory.EntryDate)
                AND (T_Temp_RestrictedDiaryCalls.CustomerCode = T_Temp_RestrictedProductSalesHistory.CustomerCode)) 
            ON qry_TargetReports.AccreditedDomainCode = T_Temp_RestrictedDiaryCalls.AccreditedDomainCode

    GROUP BY T_Temp_RestrictedDiaryCalls.AccreditedDomainCode, qry_TargetReports.CountOfCustomerCode;

但老實說,MsAccess是為我生成的。 我只需要一種方法,在仍能計算總和的情況下如何隱藏兩列,歡呼。

使用除[OrdersTaken]-[OrdersFrom]之外的所有內容作為子查詢,並在父查詢中計算該差異。

問題是[OrdersTaken][OrdersFrom]都是字段表達式的別名,並且原始查詢在計算[Strike Rate (Calls)]時試圖在SELECT子句中使用這些別名。 通常,Access不會讓您這樣做。

SELECT
    sub.AccreditedDomainCode,
    (sub.OrdersTaken - sub.OrdersFrom) AS [Strike Rate (Calls)]
FROM
    (
        SELECT
            rdc.AccreditedDomainCode,
            Count(rpsh.CustomerCode) AS OrdersTaken,
            tr.CountOfCustomerCode AS OrdersFrom
        FROM
            qry_TargetReports AS tr
            INNER JOIN (T_Temp_RestrictedDiaryCalls AS rdc
            INNER JOIN T_Temp_RestrictedProductSalesHistory AS rpsh
            ON
                    (rdc.CallDate = rpsh.EntryDate)
                AND (rdc.CustomerCode = rpsh.CustomerCode)) 
            ON tr.AccreditedDomainCode = rdc.AccreditedDomainCode
        GROUP BY rdc.AccreditedDomainCode, tr.CountOfCustomerCode
    ) AS sub;

看一下SELECT:有4個部分對應於4個結果列

T_Temp_RestrictedDiaryCalls.AccreditedDomainCode,
Count(T_Temp_RestrictedProductSalesHistory.CustomerCode) AS OrdersTaken,
qry_TargetReports.CountOfCustomerCode AS OrdersFrom
[OrdersTaken]-[OrdersFrom] AS [Strike Rate (Calls)]

如果只需要第一行和第四行,只需放下第二行和第三行:

T_Temp_RestrictedDiaryCalls.AccreditedDomainCode,
[OrdersTaken]-[OrdersFrom] AS [Strike Rate (Calls)]

但是,您還必須用它們的定義替換OrdersTaken和OrdersFrom:

T_Temp_RestrictedDiaryCalls.AccreditedDomainCode,
Count(T_Temp_RestrictedProductSalesHistory.CustomerCode) # this is what OrdersTaken stands for
    - qry_TargetReports.CountOfCustomerCode # this is what OrdersFrom stands for
AS [Strike Rate (Calls)]

請注意,您還可以設置

Strike Rate (Calls):Count(T_Temp_RestrictedProductSalesHistory.CustomerCode)-qry_TargetReports.CountOfCustomerCode

在編輯器的查詢定義中,將執行相同的操作。

暫無
暫無

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

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