需要使用2个表的MS访问选择请求的帮助



对于"产品预订系统";,我有两张桌子:

  • "RD";,用于全局预订数据(字段:ID、CustomerID、Date…(
  • "RP";,用于每个保留的保留产品数据(字段:ID、RD_ID、ProductID、Status…(。RD_ID与RD表中的ID匹配(用于加入的字段(。状态字段可以具有以下值:O、C、S

我需要提取(使用2条选择说明(所有产品状态为"O"的预订列表和预订数量。

RP的数据示例:

ID | RD_ID | ProdID | Status
----------------------------
1  | 1     | 100    | O
2  | 1     | 101    | O
3  | 1     | 102    | O
4  | 2     | 105    | O
5  | 2     | 100    | S
6  | 3     | 101    | C
7  | 3     | 102    | O

在本例中,Select语句应仅返回RD_ID 1

对于ID的编号,以下请求不起作用,因为它还包括具有不同状态的产品的预订:

SELECT COUNT(rd.ID) FROM rd INNER JOIN rp ON rp.RD_ID = rd.ID WHERE rp.Status = 'O';

你能帮我取正确的Select语句吗?

谢谢。

SELECT rd.ID,COUNT(rd.ID(CountOfRD,status从rd内部连接rp.rd_ID上的rp按rd.ID分组,状态

按如下方式使用not exists

Select t.* from your_table t
Where t.status = 'O'
And not exists (select 1 from your_table tt
Where t.rd_id = tt.rd_id
And t.status != tt.status)

您也可以按如下方式使用group byhaving

Select rd_id
From your_table t
Group by rd_id
Having sum(case when status <> 'O' then 1 end) > 0

最新更新