首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

急求数据库行列数不固定的查询表,该怎么解决

2013-11-30 
急求数据库行列数不固定的查询表我用delphi写的,查询数据库来画一张二维表,表的行数和列数是不固定的,要怎

急求数据库行列数不固定的查询表
我用delphi写的,查询数据库来画一张二维表,表的行数和列数是不固定的,要怎么写?
比如编辑这张表
急求数据库行列数不固定的查询表,该怎么解决
我想得出的结果是
 科室          西药        成药       治疗      检查      化验      合计
急诊科       106.48      198        43       420       15        782.48
超声诊疗科      0           0            3          0         0          3
肾内科                                                    60                   60

它的列:科室和行:收费类型  是不固定的
求各位帮忙教一下,谢谢!
我想得出的结果是
 科室          西药        成药       治疗      检查      化验      合计
急诊科       106.48      198        43       420       15        782.48
超声诊疗科      0           0            3          0         0          3
肾内科                                                    60                   60

它的列:科室和行:收费类型  是不固定的
求各位帮忙教一下,谢谢!
如果你的列数(西药        成药       治疗      检查      化验)不固定就难办了,前两天也有人问,现在都还没解决,你昨天好像提过问,你确定你的列数不固定?
[解决办法]



相同类型的没在一列,我解决不了...

我觉得你是不是想复杂了,我怎么老是觉得你的列数是固定的(科室 西药        成药       治疗      检查      化验 。。。),我总觉得只是你的行数不固定吧(科室决定行数),难到我理解错了?
[解决办法]
动态行转列,存储过程实现
CREATE OR REPLACE PROCEDURE P_tmp_tb IS
  V_SQL VARCHAR2(2000);
  CURSOR CURSOR_1 IS
    SELECT DISTINCT T.LXMC FROM tmp_tb1 T ORDER BY LXMC;
 
BEGIN
  V_SQL := 'SELECT BM';
  FOR V_XCLCK IN CURSOR_1 LOOP
    V_SQL := V_SQL 
[解决办法]
 ',' 
[解决办法]
 'SUM(DECODE(LXMC,''' 
[解决办法]
 V_XCLCK.LXMC 
[解决办法]

             ''',JE,0)) AS ' 
------解决方案--------------------


 V_XCLCK.LXMC;
  END LOOP;
 
  V_SQL := V_SQL 
[解决办法]
 ' FROM tmp_tb1 GROUP BY BM';
  --DBMS_OUTPUT.PUT_LINE(V_SQL);
  V_SQL := 'CREATE OR REPLACE VIEW tmp_tb2  AS ' 
[解决办法]
 V_SQL;
  --DBMS_OUTPUT.PUT_LINE(V_SQL);
  EXECUTE IMMEDIATE V_SQL;
END;


[解决办法]
楼主有没有考虑过MODEL http://blog.csdn.net/wanghai__/article/details/4783021?

ps:Oracle 10g+

热点排行