Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/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访问中的SumIF_Sql_Ms Access - Fatal编程技术网

SQL访问中的SumIF

SQL访问中的SumIF,sql,ms-access,Sql,Ms Access,您好,我是VBA/SQL的初学者。我有两个表[Broker]和[OPT]。[Broker]有2个字段BRKR\u code,Status,[OPT]有5个字段BRKR1,BRKR2,Date,COM\BRK1,COM\BRKR2 OPT.BRKR1和OPT.BRKR2链接到Broker.BRKR_code,可以相等 我想写这个查询。。。。如果Broker.Status=“Active”则选择Broker.BRKR\u code 然后,当OPT.BRKR1=“CB”+当OPT.BRKR2=“CB”

您好,我是VBA/SQL的初学者。我有两个表[Broker]和[OPT]。[Broker]有2个字段
BRKR\u code,Status
,[OPT]有5个字段
BRKR1,BRKR2,Date,COM\BRK1,COM\BRKR2

OPT.BRKR1
OPT.BRKR2
链接到
Broker.BRKR_code
,可以相等

我想写这个查询。。。。如果
Broker.Status=“Active”
则选择
Broker.BRKR\u code
然后,当
OPT.BRKR1=“CB”
+当
OPT.BRKR2=“CB”

我写了这段代码。。。。但它根本不起作用。。。就像我说的,我是个新手

    SELECT IIF(Broker.Status="Active",Broker.BRKR_CODE), Sum(OPT.COM_BRKR1)+ Sum(OPT.COM_BRKR2) AS OPT_Tot

FROM Broker INNER JOIN OPT ON (Broker.BRKR_CODE = OPT.BRKR2) AND (Broker.BRKR_CODE = OPT.BRKR1)

GROUP BY Broker.BRKR_CODE;

非常感谢

如果我理解正确,您需要在查询中更改两件事。第一个是将条件移动到
where
子句。你似乎只想要“积极”的东西。第二个是将
on
子句中的
更改为
。您希望两个代码都匹配

SELECT Broker.BRKR_CODE,
       Sum(OPT.COM_BRKR1)+ Sum(OPT.COM_BRKR2) AS OPT_Tot
FROM Broker INNER JOIN
     OPT
     ON (Broker.BRKR_CODE = OPT.BRKR2) OR (Broker.BRKR_CODE = OPT.BRKR1)
WHERE Broker.Status = "Active"
GROUP BY Broker.BRKR_CODE;

嘿,谢谢你的回答。。。这个很好用。。。我还有一个问题。。。。我有另一个名为[TRS]的表,它具有相同的功能。。。我试着写两次sames代码,只是通过
TRS
更改
OPT
,但这不起作用。。。我想有两列
OPT_Tot
TRS_Tot
@sharkantipav。你应该发布另一个问题(你可以引用这个问题)。它有助于获得样本数据和所需的输出