关于oracle的这个SQL语句怎么写?

tb1CARD_GROUP_NAMECARD_IDS-----------------------------测试9,35,22,27修改的查询9,48,27tb2ord... tb1
CARD_GROUP_NAME CARD_IDS
-------------- ---------------
测试 9,35,22,27
修改的查询 9,48,27

tb2
order_id CARD_ID fee
----------------- -------------
aaa 9 105
aaa 35 200
bbb 9 100

想得到结果: CARD_GROUP_NAME feesum
测试 405
修改的测试 205

在oracle中SQL怎样实现?
展开
 我来答
阳光上的桥
2006-12-13 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65817
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
你这样设计表只有写程序来完成了,你的tb1设计得不好,好像节省了点存储空间,实际上给编程带来许多麻烦。

如果是别人做好的系统,我们不可能去修改tb1的设计,那么要做你那样的功能,只有写程序来实现了:
对tb1进行foreach,把每行的CARD_IDS取出来,转换为SQL语句的in条件,再对tb2进行sum查询

如果可能,我建议你修改tb1的设计,可以修改成下面这样,修改以后非常简单的语句实现你的目的“select CARD_GROUP_NAME,sum(fee) from tb1,tb2 where tb1.CARD_IDS = tb2.CARD_ID group by 1 ”:
CARD_GROUP_NAME CARD_IDS
-------------- ---------------
测试 9
测试 35
测试 22
测试 27
修改的查询 9
修改的查询 48
修改的查询 27
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式