簡體   English   中英

在這種情況下如何避免使用子查詢訪問SQL

[英]How to avoid using subquery in this situation Access SQL

嗨,我有一種情況,我需要聯接兩個表,但要從第三個表中過濾值。 如下:

SELECT a.Key , (SELECT SUM(B.hours) FROM tableB as B 
                 INNER JOIN tableC as C ON B.List=C.List 
                 WHERE C.Status = 'Approved' AND B.Key LIKE A.key) , 
               (SELECT SUM(B.hours) FROM tableB as B 
                 INNER JOIN tableC as C ON B.List=C.List 
                 WHERE C.Status = 'Pending' AND B.Key LIKE A.key) 
FROM tableA as A GROUP BY A.key

還有另一種方法可以不使用相關子查詢嗎? 我想使用joins,但我只是不知道如何將表C鏈接到這張圖片。

提前致謝。

子查詢可能不是一個壞主意,但是您可以使用條件聚合來做到這一點:

SELECT a.Key,
       sum(iif(c.Status = "Approved", B.hours, 0)),
       sum(iif(c.Status = "Pending", B.hours, 0))
FROM tableA as A left join
     (tableB as b inner join
      tableC as c
      on b.list = c.list
     ) 
     on b.key like a.key
GROUP BY A.key;

MS Access具有用於連接的奧秘語法,尤其是對於多個連接。 我認為以上是正確的。

暫無
暫無

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

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