2012-12-26 46 views
4

我有一個表,我需要跟蹤正在修理歸還物品,所以跟蹤配置,問題,當我們收到並運出的物品:計數量,

 
Table Name: RMAItems 
id | RMANbr | PartNbr | RecvDate | 
----------------------------------------- 
1 | 12345 | 456-003 | 12-21-2012 | 
2 | 12345 | 434-007 | 12-21-2012 | 
3 | 12346 | 422-010 |    | 
4 | 12347 | 421-540 | 12-21-2012 | 
5 | 12347 | 460-000 |    | 
6 | 12348 | 459-006 | 12-26-2012 | 
7 | 12349 | 439-007 |    | 
8 | 12349 | 435-006 |    | 

'Recv Date'列是三個中可以爲NULL的唯一一個(即沒有值)。 id是主鍵(沒有dups),RMA Nbr列可以有重複項(因爲每個RMA Nbr可以有多個項目分配給客戶)。 Recv Date列可以爲NULL,直到我們將其標記爲收到並且表單通過另一個查詢自動填充日期。

我需要在Access 2003中的查詢(我的公司很差,現在無法升級)來計算Recv Date字段爲NULL的RMA Nbr列中不同記錄的數量(即,我需要知道沒有收到所有項目的RMA Nbr的數量)。如果我在上面的數據庫上運行查詢,我期望它返回3,因爲有三個RMA Nbr,它們上面沒有收到項目。

我試過沒有成功以下查詢:

 
SELECT Count(RMANbr) 
FROM RMAItems 
WHERE RecvDate Is Null; 

(返回4)

 
SELECT Count(*) 
FROM RMAItems 
WHERE RecvDate Is Null; 

(返回4)

 
SELECT Count(*) 
FROM (SELECT DISTINCT RMANbr FROM RMAItems) 
WHERE RecvDate Is Null; 

(此查詢運行時會彈出一個對話框,其中包含文本框和文本框上方的「RecvDate」)

如上所述,我正在使用Windows XP專業版SP3機器上的MS Access 2003。

我已經做了一些Google'ing,但沒有拿出一個查詢,將做我需要它做的事情(這就是我以上的子查詢不起作用)。你可以提供的任何幫助都是超級的。

謝謝。

回答

2

使用類似於第三個示例的方法,但將WHERE子句移入子查詢中。您得到參數對話框RecvDate的原因是因爲該字段未包含在子查詢SELECT列表中,所以父查詢未知/不可用。

SELECT Count(*) 
FROM 
    (
     SELECT DISTINCT RMANbr 
     FROM RMAItems 
     WHERE RecvDate Is Null 
    ) AS sub; 
+0

謝謝!完善! – Jguy