Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL语法错误(从事务代码为211和292的帐户ID中排除事务代码为293的帐户ID)_Sql_Ms Access - Fatal编程技术网

SQL语法错误(从事务代码为211和292的帐户ID中排除事务代码为293的帐户ID)

SQL语法错误(从事务代码为211和292的帐户ID中排除事务代码为293的帐户ID),sql,ms-access,Sql,Ms Access,从事务代码为211和292的帐户ID中排除事务代码为293的帐户ID的SQL语法错误 SELECT trn1.ACCOUNT_ID FROM ( SELECT ACCOUNT_ID FROM Transaction_Data_Flexi WHERE TRAN_CODE = 211 OR TRAN_CODE = 292 ) AS trn1 WHERE ACCOUNT_ID NOT IN ( SELECT ACCOUNT_ID FROM Transaction_Data_Flexi WHERE

从事务代码为211和292的帐户ID中排除事务代码为293的帐户ID的SQL语法错误

SELECT trn1.ACCOUNT_ID
FROM 
(
SELECT ACCOUNT_ID
FROM Transaction_Data_Flexi
WHERE TRAN_CODE = 211 OR TRAN_CODE = 292
) AS trn1
WHERE ACCOUNT_ID NOT IN 
(
SELECT ACCOUNT_ID
FROM Transaction_Data_Flexi
WHERE TRAN_CODE = 293
) AS trn2
GROUP BY ACCOUNT_ID

您缺少加入的条件。如果不打算指定条件,请使用交叉连接而不是左连接

SELECT trn1.ACCOUNT_ID
FROM 
(
SELECT ACCOUNT_ID
FROM Transaction_Data_Flexi
WHERE TRAN_CODE = 211 OR TRAN_CODE = 292
) AS trn1
WHERE ACCOUNT_ID NOT IN 
(
SELECT ACCOUNT_ID
FROM Transaction_Data_Flexi
WHERE TRAN_CODE = 293
) AS trn2
GROUP BY ACCOUNT_ID
将出现另一个错误-对于GROUPBY子句,您需要指定分组依据的列

    GROUP BY  trn1.account_id, trn2.account_id
SELECT trn1.ACCOUNT_ID
FROM 
(
SELECT ACCOUNT_ID
FROM Transaction_Data_Flexi
WHERE TRAN_CODE = 211 OR TRAN_CODE = 292
) AS trn1
WHERE ACCOUNT_ID NOT IN 
(
SELECT ACCOUNT_ID
FROM Transaction_Data_Flexi
WHERE TRAN_CODE = 293
) AS trn2
GROUP BY ACCOUNT_ID

我建议使用小组进行此操作,并且:

SELECT trn1.ACCOUNT_ID
FROM 
(
SELECT ACCOUNT_ID
FROM Transaction_Data_Flexi
WHERE TRAN_CODE = 211 OR TRAN_CODE = 292
) AS trn1
WHERE ACCOUNT_ID NOT IN 
(
SELECT ACCOUNT_ID
FROM Transaction_Data_Flexi
WHERE TRAN_CODE = 293
) AS trn2
GROUP BY ACCOUNT_ID

这将检查给定事务的代码。有条件验证代码。

谢谢大家的帮助!是的,您的应该可以工作,但我想尝试使用NOT IN语句,我已经更新了查询,如下所示。但我仍然不同意中间where语句附近缺少运算符:

SELECT trn1.ACCOUNT_ID
FROM 
(
SELECT ACCOUNT_ID
FROM Transaction_Data_Flexi
WHERE TRAN_CODE = 211 OR TRAN_CODE = 292
) AS trn1
WHERE ACCOUNT_ID NOT IN 
(
SELECT ACCOUNT_ID
FROM Transaction_Data_Flexi
WHERE TRAN_CODE = 293
) AS trn2
GROUP BY ACCOUNT_ID

谢谢大家的帮助!是的,您的应该可以工作,但我想尝试使用NOT IN语句,我已经更新了查询,如下所示。但我仍然有一个问题,就是中间where语句附近缺少运算符:选择trn1.ACCOUNT\u ID FROM SELECT ACCOUNT\u ID FROM Transaction\u Data\u Flexi where TRAN\u CODE=211或TRAN\u CODE=292作为trn1 where ACCOUNT\u ID NOT in SELECT ACCOUNT\u ID FROM Transaction\u Data\u Flexi where TRAN\u CODE=293作为trn2 GROUP BY帐户\u停用AS trn2。另外,下次请指出确切的错误和发生错误的行。在某些情况下,中的性能比现有的更差。例如,请注意,我编辑了您的SQL并将其作为代码块放入。我试过了,它说标准表达式中的数据不匹配。有什么想法吗?这意味着您正在某处比较两种不同的数据类型。最有可能的情况是,您需要将您的传输代码放在如下引号中:“211”