我编写了一个SQL查询来过滤许多条件,并使用distinct来查找唯一的记录。
具体来说,我只需要uintmax_t
字段是唯一的,每个<stdint.h>
有多个AccountID
。
查询有效,但产生了一些重复。
进一步的警告是:
AddressClientIDs
AccountID
AccountID
和Y
醇>
我只想返回N
,其中包含除了指定状态以外的状态的事务,因此我没有使用,因为我不想要2状态。
我想只找到AccountID
列的唯一值。
如果有人可以帮助改进下面的查询,我们将非常感激。
AccountIDs
感谢。
答案 0 :(得分:0)
SELECT AFS_Account.AddressClientID
,afs_transunit.AccountID
,SUM(afs_transunit.Units)
FROM AFS_TransUnit
INNER JOIN AFS_Account ON AFS_TransUnit.AccountID = AFS_Account.AccountID
INNER JOIN afs_trans ON afs_trans.acccountid = afs_transunit.accountid
WHERE afs_trans.STATUS NOT IN ('POSTPEND','POSTWAIT')
-- AND afs_trans.isallocated = 'Y'
GROUP BY afs_transunit.AccountID
,AFS_Account.AddressClientID
HAVING SUM(afs_transunit.Units) > 100
and max(afs_trans.isallocated) = 'Y'
and min(afs_trans.isallocated) = 'Y'
使用ANSI SQL连接语法修改了您的查询。当您加入表格时,您只需指定条件而不使用您拥有的子查询。
答案 1 :(得分:0)
由于您确认AccountID
列上的两个表格之间存在一对多关系,因此您可以使用Max
的{{1}}值来获取不同的值:
AccountID