2013.01.11 ORA-SQL 测试脚本

  -- 基于主变及进行确定最大BASEV

  SELECT stationname, MAX (basev) TRAN_LN, 0 BUS
    FROM tb_topo_line
   WHERE linetype IN (12, 271, 527, 783)
GROUP BY stationname;

-- 基于母线确定最大BASEV

  SELECT stationname, 0 TRAN_LN, MAX (basev) BUS
    FROM tb_topo_node
   WHERE nodetype2 = 11
GROUP BY stationname;

-- 联合以上2种方法,确定最大BASEV

-- 更新 TB_DEV_SUBSTATION TABLE
UPDATE tb_dev_substation a
   SET a.basev = (
          SELECT b.basev FROM(  SELECT stationname,
                    DECODE (GREATEST (MAX (tran_ln), MAX (bus)),
                            500, 0,
                            220, 1,
                            110, 2,
                            35, 3,
                            10, 4,
                            1, 5,
                            6, 6,
                            7, 0.4,
                            -1)
                       BASEV,
                    MAX (tran_ln) MAX_TRAN_LN,
                    MAX (bus) MAX_BUS
               FROM (  SELECT stationname, MAX (basev) TRAN_LN, 0 BUS
                         FROM tb_topo_line
                        WHERE linetype IN (12, 271, 527, 783)
                     GROUP BY stationname
                     UNION
                       SELECT stationname, 0 TRAN_LN, MAX (basev) BUS
                         FROM tb_topo_node
                        WHERE nodetype2 = 11
                     GROUP BY stationname)
           GROUP BY stationname
           ORDER BY stationname)b WHERE a.name = b.stationname);

-- 更新 TB_EVA_KEYUSER TABLE
SELECT * FROM tb_eva_keyuser;

UPDATE tb_eva_keyuser a
SET a.basev = (
          SELECT b.basev FROM(  SELECT stationname,
                    GREATEST (MAX (tran_ln), MAX (bus))  BASEV,
                    MAX (tran_ln) MAX_TRAN_LN,
                    MAX (bus) MAX_BUS
               FROM (  SELECT stationname, MAX (basev) TRAN_LN, 0 BUS
                         FROM tb_topo_line
                        WHERE linetype IN (12, 271, 527, 783)
                     GROUP BY stationname
                     UNION
                       SELECT stationname, 0 TRAN_LN, MAX (basev) BUS
                         FROM tb_topo_node
                        WHERE nodetype2 = 11
                     GROUP BY stationname)
           GROUP BY stationname
           ORDER BY stationname)b WHERE a.name = b.stationname);

SELECT *
  FROM (SELECT DISTINCT name FROM tb_dev_substation) a
 WHERE a.name NOT IN (SELECT DISTINCT stationname FROM tb_topo_line);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值