Sql 在另一个查询中使用Access查询的结果。

Sql 在另一个查询中使用Access查询的结果。,sql,ms-access,ms-access-2010,Sql,Ms Access,Ms Access 2010,我在互联网上搜索了一个解决方案,绞尽脑汁想弄明白这一点,希望有人能帮上忙。基本情况如下 我在一个表中有一个事务列表。每笔交易都有客户ID、商店ID、他们购买的产品和账单代码(2、3、4、5、6、7)字段 一些商店根本没有使用计费代码2,我想进一步调查一下 我创建了一个不使用账单代码2的商店列表。有20家商店 然后我创建了一个查询,提供了与这20家商店相关联的客户列表 -------------------这就是我现在所在的地方----------- 基本上,我想看看,如果人们去商店X购买产品Y,

我在互联网上搜索了一个解决方案,绞尽脑汁想弄明白这一点,希望有人能帮上忙。基本情况如下

我在一个表中有一个事务列表。每笔交易都有客户ID、商店ID、他们购买的产品和账单代码(2、3、4、5、6、7)字段

一些商店根本没有使用计费代码2,我想进一步调查一下

我创建了一个不使用账单代码2的商店列表。有20家商店

然后我创建了一个查询,提供了与这20家商店相关联的客户列表

-------------------这就是我现在所在的地方-----------

基本上,我想看看,如果人们去商店X购买产品Y,他们在两个不同的商店是否受到不同的待遇(账单代码)。如果他们不使用计费代码2,那么商店会有更多的钱,因此他们不使用此代码是一种激励

有没有一种方法可以进行查询并告诉Access,让我了解正在使用这20家商店和另一家商店(不是这20家中的一家)的客户,他们是否在其他地方购买相同的产品


任何帮助都将不胜感激。我有一种感觉,我需要简化这一点,并采取多个步骤,但我似乎无法找到一条从a点到B点的路径。谢谢

好的,听起来您有一个查询来查找不使用billingCode=2的商店

SELECT DISTINCT storeID
FROM tblPurchases
WHERE storeID NOT IN (SELECT storeID FROM tblPurchases WHERE billingCode=2);
我在Access中将该查询保存为[qryStoresNotUsing2],以便在下面使用它

听起来您还利用了第一个查询,为您提供了在这些商店购物的客户列表,这可以通过以下方式完成

SELECT DISTINCT clientID
FROM tblPurchases
WHERE storeID IN (SELECT storeID FROM qryStoresNotUsing2);
现在,听起来你想了解一些客户的详细信息,他们在一家“非2”商店购买产品,同时也在其他地方购买相同的产品

我们可以首先生成一个列表,列出同一客户在不同商店购买同一产品的所有采购:

SELECT DISTINCT p1.clientID, p1.productID, 
        p1.storeID AS store1, p1.billingCode AS billingCode1, 
        p2.storeID AS store2, p2.billingCode AS billingCode2
FROM tblPurchases p1 INNER JOIN tblPurchases p2 
    ON p1.clientID=p2.clientID AND p1.productID=p2.productID AND p1.storeID<>p2.storeID
该查询将列出单个购买。如果只需要客户端,可以从输出中省略productID、storeID和billingCode列,只需执行以下操作

SELECT DISTINCT p1.clientID FROM ...

我将通过以下方式来解决这个问题:

1-使用查询获取所有已由账单代码为2的商店开具账单的产品的列表-只有产品代码,没有其他信息

2-将交易表链接到步骤1中的查询,并列出产品、客户、门店和账单代码-可能在交叉表查询中,产品、客户和门店位于下方,账单代码位于上方

3-目视扫描此输出以查看未使用计费代码2的商店-这应该回答您的问题或告诉您是否需要更多调查

或者,您可以在步骤2中使用select查询,并为计费代码2添加一个条件-由于您在任何地方开始使用所有以代码2计费的产品,此查询将告诉您(商店、产品、客户)当其他商店对同一产品使用代码2时,那些没有使用代码2的商店

另一种选择是,如果必须是特定于客户的-在查询1中,获取所有代码2票据代码的客户/产品组合。然后将其链接到客户和产品的交易表,条件为票据代码2。这与上面的逻辑相同,但将列出一个商店中以代码2计费的(客户、产品)组合,以及另一个商店中的一些其他账单代码


所有这些都是简单的选择或交叉表查询,其中包含从第一个查询到第二个查询的连接。

您能给我们显示您的代码吗?以及您的表。您可能只需要几个查询,或者一个简单的连接。
SELECT DISTINCT p1.clientID FROM ...