精易论坛

标题: 通过ODBC组件读取临时表数据的问题 [打印本页]

作者: ilovegenny    时间: 2025-2-15 17:23
标题: 通过ODBC组件读取临时表数据的问题
代码如下,外部数据库1是ODBC组件,代码走到这一行,str_tmp = 外部数据库1.读 (记录集句柄, “count1”),就无法获取数据了,很奇怪,为何前面几个这段是可以获取数据的话,我的字段名写错了,没有啊,大家帮我看看哪里有问题?

str_sql = “SELECT     s.stock_name,    (COALESCE(t1.count, 0) + COALESCE(t2.count, 0) + COALESCE(t3.count, 0)) / 3.0 AS count_age,    d.date1,    COALESCE(t1.count, 0) AS count1,    d.date2,    COALESCE(t2.count, 0) AS count2,    d.date3,    COALESCE(t3.count, 0) AS count3,    COALESCE(t1.count, 0) - COALESCE(t2.count, 0) AS numer FROM     (SELECT DISTINCT stock_name FROM t_人qi榜) s CROSS JOIN     (SELECT         MAX(CASE WHEN rn = 1 THEN trade_date END) AS date1,        MAX(CASE WHEN rn = 2 THEN trade_date END) AS date2,        MAX(CASE WHEN rn = 3 THEN trade_date END) AS date3      FROM (         SELECT trade_date, ROW_NUMBER() OVER (ORDER BY trade_date DESC) AS rn         FROM (SELECT DISTINCT trade_date FROM t_人qi榜) AS d     ) AS ranked_dates      WHERE rn <= 3) d LEFT JOIN t_人qi榜 t1     ON s.stock_name = t1.stock_name AND t1.trade_date = d.date1 LEFT JOIN t_人qi榜 t2     ON s.stock_name = t2.stock_name AND t2.trade_date = d.date2 LEFT JOIN t_人qi榜 t3     ON s.stock_name = t3.stock_name AND t3.trade_date = d.date3 WHERE     NOT (COALESCE(t1.count, 0) = 0 AND COALESCE(t2.count, 0) = 0) ORDER BY     count_age DESC;”

记录集句柄 = 外部数据库1.cha询 (str_sql)
外部数据库1.到首记录 (记录集句柄)
外部数据库1.执行 (str_sql, )

a = 1

.判断循环首 (外部数据库1.尾记录后 (记录集句柄) = 假)

    str_tmp = 外部数据库1.读 (记录集句柄, “stock_name”)
    高级表格2.置数据 (a, 1, 1, str_tmp)
    str_tmp = 外部数据库1.读 (记录集句柄, “count_age”)
    高级表格2.置数据 (a, 2, 1, str_tmp)
    str_tmp = 外部数据库1.读 (记录集句柄, “date1”)
    高级表格2.置数据 (a, 3, 1, str_tmp)
    str_tmp = 外部数据库1.读 (记录集句柄, “count1”)
    高级表格2.置数据 (a, 4, 1, str_tmp)
    str_tmp = 外部数据库1.读 (记录集句柄, “date2”)
    高级表格2.置数据 (a, 5, 1, str_tmp)
    str_tmp = 外部数据库1.读 (记录集句柄, “count2”)
    高级表格2.置数据 (a, 6, 1, str_tmp)
    str_tmp = 外部数据库1.读 (记录集句柄, “date3”)
    高级表格2.置数据 (a, 7, 1, str_tmp)
    str_tmp = 外部数据库1.读 (记录集句柄, “count3”)
    高级表格2.置数据 (a, 8, 1, str_tmp)
    str_tmp = 外部数据库1.读 (记录集句柄, “number”)
    高级表格2.置数据 (a, 9, 1, str_tmp)

    高级表格2.置单元格文字颜色 (a, 1, a, 9, #白色)

    a = a + 1
    外部数据库1.到后一记录 (记录集句柄)
.判断循环尾 ()



作者: qq977352880    时间: 2025-2-15 17:23
收藏了,感谢分享。

作者: qq977352880    时间: 2025-2-15 20:30
来赚个积分,感谢楼主。

作者: ilovegenny    时间: 2025-2-17 08:09
    没人回答,我自己解决了,就是再做一层Select * from就可以了




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4