您好我是VBA / SQL的初学者。我有2个表[Broker]和[OPT]。 [经纪人]有2个字段BRKR_CODE, Status
和[OPT]有5个字段BRKR1, BRKR2, Date, COM_BRK1, COM_BRKR2
OPT.BRKR1
和OPT.BRKR2
与Broker.BRKR_CODE
相关联且可以相等。
我想写这个查询....如果Broker.Status="Active"
那么选择Broker.BRKR_CODE
然后对于每个Broker.BRKR_CODE
(例如" CB")OPT.COM_BRKR1
时的OPT.BRKR1="CB"
总和OPT.COM_BRKR2
+ 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;
我写了这段代码....但它根本不起作用......因为我说我是新手......
{{1}}
非常感谢
答案 0 :(得分:1)
如果我理解正确,您需要在查询中更改两件事。第一种是将条件移动到where
子句。你似乎只想要" Active"的东西。第二种是将AND
子句中的on
更改为OR
。您希望在任一代码上进行匹配。
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;