2011-09-23 114 views
1

我有兩張桌子。一個包含我的所有客戶,另一個包含他們的所有訂單。 我想創建一個SQL查詢,看起來像這樣:MS Access,如何將參數傳遞給子查詢?

SELECT c.CustomerID, c.Firstname, c.Lastname, 
     (
     SELECT count(orderID) 
      FROM tbl_orders o 
     WHERE o.CustomerID = c.CustomerID 
     ) as OrderCount 
    FROM tbl_customers c; 

我有這樣做的問題是,獲得不停地問我要這將在子查詢WHERE子句中使用的參數「客戶ID」。顯然,我想自動解決它。我該怎麼做呢?

+1

你確定兩個表都有一個名爲'CustomerID'的列嗎? – onedaywhen

+1

右鍵:彈出的意外參數通常意味着字段名稱爲misspell3d。 –

+0

只是爲了記錄:您也可以在MySQL的子查詢中使用來自父查詢的數據。 – Artur

回答

2

沒有明顯的原因,它應該工作。也許你在你的一塊田地上拼錯了。檢查客戶ID是否爲tbl_orders & tbl_customers的一部分。

您可以找到有關直通下面的鏈接子查詢一些信息:SubQueryDoc

2

爲什麼不通過聯接和一羣努力?對我來說似乎更簡單和更豐富。

SELECT c.CustomerID, c.Firstname, c.Lastname, count(o.orderId) as Orders, max(o.OrderDate) as LastOrder 
FROM tbl_customers c LEFT JOIN tbl_orders o 
ON o.CustomerID = c.CustomerID 
GROUP BY c.CustomerID, c.Firstname, c.Lastname 

這樣的查詢可以在查詢設計視圖中直觀地設計。然後可以切換到SQL視圖,並複製或編輯生成的SQL語句。