关于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怎样实现? 展开
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怎样实现? 展开
展开全部
你这样设计表只有写程序来完成了,你的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
如果是别人做好的系统,我们不可能去修改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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询