Sql 在表中添加行最合适的逻辑是什么

Sql 在表中添加行最合适的逻辑是什么,sql,oracle,join,plsql,Sql,Oracle,Join,Plsql,我简化了下表结构,以明确基本内容,其中列出了银行各类贷款和分行的前三名银行客户。SNO列是客户的排名,其值最多为3 贷款类别 斯诺 树枝 客户名称 数量 住房贷款 1. abc 皮尤什 10000 住房贷款 2. abc 希亚姆 5000 住房贷款 3. abc 卡莫尔 2000 住房贷款 1. xyz 金钟国 50000 住房贷款 2. xyz 希亚姆 20000 汽车贷款 1. abc 比兰德拉 10000 个人贷款 1. xyz 吉安 5000 个人贷款 2. xyz 普拉卡什 2000

我简化了下表结构,以明确基本内容,其中列出了银行各类贷款和分行的前三名银行客户。SNO列是客户的排名,其值最多为3

贷款类别 斯诺 树枝 客户名称 数量 住房贷款 1. abc 皮尤什 10000 住房贷款 2. abc 希亚姆 5000 住房贷款 3. abc 卡莫尔 2000 住房贷款 1. xyz 金钟国 50000 住房贷款 2. xyz 希亚姆 20000 汽车贷款 1. abc 比兰德拉 10000 个人贷款 1. xyz 吉安 5000 个人贷款 2. xyz 普拉卡什 2000
嗯。所以您必须有一些表,其中分支和类别在单个或多个表中列出。让我们把它作为您的分支和类别表,您必须有一些查询来生成问题中提到的结果。让我们称之为您的查询

您需要为每个类别的每个分支生成3条记录

Select c.category as loan_category,
       L.lvl as sno, 
       B.branch,
       Q.cutomername,
       Q.amount
  From category c 
  Cross join branch b
  Cross Join (select level lvl from dual connect by level <= 3) l 
  Left Join your_query q on q.branch = c.branch 
                        and q.category = c.category
                        and l.lvl = q.sno
 Ordet by c.category, B.branch, L.lvl

这正是我要找的。非常感谢。简化了表格结构,使基本内容清晰明了,列出了银行各类贷款和分行的前三名银行客户。这本身就是一个有缺陷的设计。每次客户接受新贷款或支付现有贷款时,您都必须不断检查并可能更新该表。更不用说对贷款余额应用应计利息的影响了。您不应该存储可以而且应该在运行时计算的内容。