我有一个要求如下。我有一个主表作为主人和其他三个表如下,商人,客户,设备
我想根据条件从这些表中进行选择,并从商家、客户或设备中进行选择,
SELECT count(chkitems.alert_id) AS alert_cnt, chkitems.blacklist_id,
sum(case when fm.alert_id is NOT null then 1 else 0 end) as fraud_cnt
FROM
Condition 1:
***Merchant mid INNER JOIN CHECK_BLACKLIST_ITEMS chkitems ON mid.Marchant_id = chkitems.blacklist_id***
Condition 2:
***Customer cust INNER JOIN CHECK_BLACKLIST_ITEMS chkitems ON cust.Customer_id = chkitems.blacklist_id***
Condition 3:
***Device dev INNER JOIN CHECK_BLACKLIST_ITEMS chkitems ON dev.Device_id = chkitems.blacklist_id***
LEFT JOIN FRAUDMARKING_VIEW fm ON (chkitems.alert_id = fm.alert_id)
GROUP BY chkitems.blacklist_id;
注意上面提到的条件1、条件2、条件3。有一些报表,我不知道该填什么。或者根本不可能?
数据库是Oracle。我想把它插入到一个碧玉报表中,所以根据我们目前的设计,需要使用这种select is查询
很抱歉在问题中表现出的无知,但请理解。
2条答案
按热度按时间b4lqfgs41#
您可以使用
UNION ALL
连接所有可选表(因为您只需要每个表的ID列),并使用WHERE
子句过滤它们:也可以使用
EXISTS
:b4wnujal2#
如果没有一些样本数据,很难说出它的全部内容,但我们可以尝试猜测上下文。以下是涉及的表格,因为我认为它们可能是相似的:
| ID|警报ID| BLACKLIST_ID|
| - -----|- -----|- -----|
| 1| A01|一百三十二|
| 2|公司简介|一百四十|
| 3| A23|一百四十|
| 4| A44|一百三十二|
| 5个|A45|一百八十八|
| 商家ID|注意事项|
| - -----|- -----|
| 一百一十二|商家112|
| 一百二十九|商人129|
| 一百四十|商家140|
| 一百五十六|商人156|
| 客户ID|注意事项|
| - -----|- -----|
| 一百三十二|客户132|
| 一百三十三|客户133|
| 一百三十四|客户134|
| 器械ID|注意事项|
| - -----|- -----|
| 一百八十|装置180|
| 一百八十八|设备188|
| 一百九十|装置190|
假设fraudmarking_view用于数据比较,作为示例,我创建了如下:
| 警报ID|其他_COLS|
| - -----|- -----|
| A01||
| 公司简介||
| A44||
| A45||
现在,我们可以将上述所有内容组合成一个连接的数据集(将其命名为Grid)
。。。看起来像是。。
| BLACKLIST_ID|警报ID| FM_ALERT_ID|商家ID|客户ID|器械ID|
| - -----|- -----|- -----|- -----|- -----|- -----|
| 一百三十二|A01| A01||一百三十二||
| 一百三十二|A44| A44||一百三十二||
| 一百四十|A23||一百四十|||
| 一百四十|公司简介|公司简介|一百四十|||
| 一百八十八|A45| A45|||一百八十八|
...如果我们在按BLACKLIST_ID分组的网格数据集上使用启动select命令...
......结果应该像下面这样。
| BLACKLIST_ID|警报_CNT|欺诈_CNT|
| - -----|- -----|- -----|
| 一百四十|2| 1|
| 一百八十八|1| 1|
| 一百三十二|2| 2|
添加
如果您想知道数据是从哪里提取的,并且在三个黑名单表中是否有相同的ID,您应该向网格添加另一列(PICKED_FROM)
网格数据集现在是这样的:
| BLACKLIST_ID|警报ID| FM_ALERT_ID|商家ID|客户ID|器械ID|选择_从|
| - -----|- -----|- -----|- -----|- -----|- -----|- -----|
| 一百三十二|A01| A01||一百三十二||客户服务|
| 一百三十二|A44| A44||一百三十二||客户服务|
| 一百四十|A23||一百四十|||商人|
| 一百四十|公司简介|公司简介|一百四十|||商人|
| 一百八十八|A45| A45|||一百八十八|设备|
现在您可以将该列包含在您的选择和分组依据中...
...结果如下:
| BLACKLIST_ID|警报_CNT|欺诈_CNT|选择_从|
| - -----|- -----|- -----|- -----|
| 一百三十二|2| 2|客户服务|
| 一百四十|2| 1|商人|
| 一百八十八|1| 1|设备|