当前位置: 代码迷 >> Oracle管理 >> 急求数据库行列数不固定的查询表,该怎么处理
  详细解决方案

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

热度:101   发布时间:2016-04-24 04:25:30.0
急求数据库行列数不固定的查询表
我用delphi写的,查询数据库来画一张二维表,表的行数和列数是不固定的,要怎么写?
比如编辑这张表

我想得出的结果是
 科室          西药        成药       治疗      检查      化验      合计
急诊科       106.48      198        43       420       15        782.48
超声诊疗科      0           0            3          0         0          3
肾内科                                                    60                   60

它的列:科室和行:收费类型  是不固定的
求各位帮忙教一下,谢谢!
------解决方案--------------------
引用:
我用delphi写的,查询数据库来画一张二维表,表的行数和列数是不固定的,要怎么写?
比如编辑这张表

我想得出的结果是
 科室          西药        成药       治疗      检查      化验      合计
急诊科       106.48      198        43       420       15        782.48
超声诊疗科      0           0            3          0         0          3
肾内科                                                    60                   60

它的列:科室和行:收费类型  是不固定的
求各位帮忙教一下,谢谢!

如果你的列数(西药        成药       治疗      检查      化验)不固定就难办了,前两天也有人问,现在都还没解决,你昨天好像提过问,你确定你的列数不固定?
------解决方案--------------------
引用:
对的,我昨天那个列数固定的,今天这个要不固定的,我已经用循环把数据一条一条的读到advstringgrid表中了,但是有问题


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

我觉得你是不是想复杂了,我怎么老是觉得你的列数是固定的(科室 西药        成药       治疗      检查      化验 。。。),我总觉得只是你的行数不固定吧(科室决定行数),难到我理解错了?
------解决方案--------------------
动态行转列,存储过程实现
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+
  相关解决方案