楼主: xxzqbxxzqb

[原创] 请教一条SQL语句

[复制链接]
论坛徽章:
13
奥运会纪念徽章:射箭
日期:2008-09-16 15:55:24日产
日期:2013-09-11 11:46:582013年新春福章
日期:2013-02-25 14:51:24ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15ITPUB9周年纪念徽章
日期:2010-10-08 09:32:27祖国60周年纪念徽章
日期:2009-10-09 08:28:00生肖徽章2007版:蛇
日期:2009-05-09 08:11:36ERP板块每日发贴之星
日期:2009-04-14 01:01:03生肖徽章2007版:牛
日期:2009-04-13 14:41:58生肖徽章2007版:猪
日期:2009-02-19 08:34:20
11#
 楼主| 发表于 2009-7-2 10:57 | 只看该作者
又测试了一上午,感觉是在数据类型转换上面出现了问题。

即:

parambyname('nd').AsSmallInt:=b;
parambyname('yf').AsSmallInt:=c;


sybase表中 'nd' 的数据类型是smallint  ,'yf'的数据类型是 tinyint, 'kcqcje'的数据类型是decimal(15,2) ,'kcckdm'的数据类型是char(8)  。


请问这些数据类型在Delphi的程序中该如何进行转换? 都用到哪些函数??   谢谢

使用道具 举报

回复
论坛徽章:
13
奥运会纪念徽章:射箭
日期:2008-09-16 15:55:24日产
日期:2013-09-11 11:46:582013年新春福章
日期:2013-02-25 14:51:24ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15ITPUB9周年纪念徽章
日期:2010-10-08 09:32:27祖国60周年纪念徽章
日期:2009-10-09 08:28:00生肖徽章2007版:蛇
日期:2009-05-09 08:11:36ERP板块每日发贴之星
日期:2009-04-14 01:01:03生肖徽章2007版:牛
日期:2009-04-13 14:41:58生肖徽章2007版:猪
日期:2009-02-19 08:34:20
12#
 楼主| 发表于 2009-7-2 15:19 | 只看该作者
如果只用一个字符串类型的查询变量,则查询速度马上立马恢复到秒级 。

         a:=trim(edit2.Text);
               /// b:=strtoint(trim(combobox2.Text));
               /// c:=strtoint(trim(combobox3.Text));

                with query3 do
                       begin
                             close;
                             sql.clear;
                             sql.add('select sum(kcqcje) as d1 from kct06');
                             sql.add('where  kcckdm=:dm');
                             /// parambyname('nd').AsSmallInt:=b;
                             /// parambyname('yf').AsSmallInt:=c;
                             parambyname('dm').AsString:=a;
                             open;
                       end;



请高手再给我看看,谢谢。

使用道具 举报

回复
论坛徽章:
47
生肖徽章:牛
日期:2007-09-26 17:01:04马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14奥运会纪念徽章:摔跤
日期:2012-09-18 10:12:52版主4段
日期:2012-05-15 15:24:112012新春纪念徽章
日期:2012-01-04 11:50:44现任管理团队成员
日期:2011-05-07 01:45:08生肖徽章:蛇
日期:2007-09-26 17:01:59
13#
发表于 2009-7-16 15:50 | 只看该作者
原帖由 xxzqbxxzqb 于 2009-7-1 11:02 发表
最终的SQL语句就是一楼的。

就是:

select sum(kct06.kcqcje) from kct06

  where kckjnd = 年份  and kckjyf = 月份  and kcckdm = “要查询的仓库或店铺代码”



你把这个SQL在sql adv或者isql中执行一下,执行之前打开查询计划的开关,看看索引是否被正确用到:

set showplan on
go
xxxxxxx--你的sql语句
go

然后把查询计划贴出来看看。

使用道具 举报

回复
论坛徽章:
13
奥运会纪念徽章:射箭
日期:2008-09-16 15:55:24日产
日期:2013-09-11 11:46:582013年新春福章
日期:2013-02-25 14:51:24ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15ITPUB9周年纪念徽章
日期:2010-10-08 09:32:27祖国60周年纪念徽章
日期:2009-10-09 08:28:00生肖徽章2007版:蛇
日期:2009-05-09 08:11:36ERP板块每日发贴之星
日期:2009-04-14 01:01:03生肖徽章2007版:牛
日期:2009-04-13 14:41:58生肖徽章2007版:猪
日期:2009-02-19 08:34:20
14#
 楼主| 发表于 2009-7-17 10:49 | 只看该作者
“执行之前打开 查询计划的开关”, 请问jarjar ,该如何操作?

使用道具 举报

回复
论坛徽章:
13
奥运会纪念徽章:射箭
日期:2008-09-16 15:55:24日产
日期:2013-09-11 11:46:582013年新春福章
日期:2013-02-25 14:51:24ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15ITPUB9周年纪念徽章
日期:2010-10-08 09:32:27祖国60周年纪念徽章
日期:2009-10-09 08:28:00生肖徽章2007版:蛇
日期:2009-05-09 08:11:36ERP板块每日发贴之星
日期:2009-04-14 01:01:03生肖徽章2007版:牛
日期:2009-04-13 14:41:58生肖徽章2007版:猪
日期:2009-02-19 08:34:20
15#
 楼主| 发表于 2009-7-17 10:54 | 只看该作者





QUERY PLAN FOR STATEMENT 1 (at line 1).




    STEP 1
        The type of query is SET OPTION ON.




QUERY PLAN FOR STATEMENT 1 (at line 1).




    STEP 1
        The type of query is SELECT.
        Evaluate Ungrouped SUM OR AVERAGE AGGREGATE.


        FROM TABLE
            kct06
        Nested iteration.
        Using Clustered Index.
        Index : kct06_p
        Forward scan.
        Positioning by key.
        Keys are:
            kckjnd  ASC
            kckjyf  ASC
            kcckdm  ASC
        Using I/O Size 8 Kbytes for data pages.
        With LRU Buffer Replacement Strategy for data pages.


    STEP 2
        The type of query is SELECT.


(1 row affected)

使用道具 举报

回复
论坛徽章:
47
生肖徽章:牛
日期:2007-09-26 17:01:04马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14奥运会纪念徽章:摔跤
日期:2012-09-18 10:12:52版主4段
日期:2012-05-15 15:24:112012新春纪念徽章
日期:2012-01-04 11:50:44现任管理团队成员
日期:2011-05-07 01:45:08生肖徽章:蛇
日期:2007-09-26 17:01:59
16#
发表于 2009-7-17 22:35 | 只看该作者
没问题啊,用上索引的,速度怎么样?
还可以 set statistics io,time on,然后再执行,可以看到IO次数和执行时间。

使用道具 举报

回复
论坛徽章:
13
奥运会纪念徽章:射箭
日期:2008-09-16 15:55:24日产
日期:2013-09-11 11:46:582013年新春福章
日期:2013-02-25 14:51:24ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15ITPUB9周年纪念徽章
日期:2010-10-08 09:32:27祖国60周年纪念徽章
日期:2009-10-09 08:28:00生肖徽章2007版:蛇
日期:2009-05-09 08:11:36ERP板块每日发贴之星
日期:2009-04-14 01:01:03生肖徽章2007版:牛
日期:2009-04-13 14:41:58生肖徽章2007版:猪
日期:2009-02-19 08:34:20
17#
 楼主| 发表于 2009-7-18 16:13 | 只看该作者
在SQL Advantage中运行没问题,速度很快。

我觉得问题是否出现在我的开发工具Delphi上面,就像我上面所说的那样, 麻烦你再给看看,谢谢。

使用道具 举报

回复
论坛徽章:
47
生肖徽章:牛
日期:2007-09-26 17:01:04马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14奥运会纪念徽章:摔跤
日期:2012-09-18 10:12:52版主4段
日期:2012-05-15 15:24:112012新春纪念徽章
日期:2012-01-04 11:50:44现任管理团队成员
日期:2011-05-07 01:45:08生肖徽章:蛇
日期:2007-09-26 17:01:59
18#
发表于 2009-7-20 12:53 | 只看该作者
delphi和数据库之间用什么连接?

使用道具 举报

回复
论坛徽章:
13
奥运会纪念徽章:射箭
日期:2008-09-16 15:55:24日产
日期:2013-09-11 11:46:582013年新春福章
日期:2013-02-25 14:51:24ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15ITPUB9周年纪念徽章
日期:2010-10-08 09:32:27祖国60周年纪念徽章
日期:2009-10-09 08:28:00生肖徽章2007版:蛇
日期:2009-05-09 08:11:36ERP板块每日发贴之星
日期:2009-04-14 01:01:03生肖徽章2007版:牛
日期:2009-04-13 14:41:58生肖徽章2007版:猪
日期:2009-02-19 08:34:20
19#
 楼主| 发表于 2009-7-21 08:29 | 只看该作者
BDE 或 ADO 连接都是这样慢

使用道具 举报

回复
论坛徽章:
47
生肖徽章:牛
日期:2007-09-26 17:01:04马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14奥运会纪念徽章:摔跤
日期:2012-09-18 10:12:52版主4段
日期:2012-05-15 15:24:112012新春纪念徽章
日期:2012-01-04 11:50:44现任管理团队成员
日期:2011-05-07 01:45:08生肖徽章:蛇
日期:2007-09-26 17:01:59
20#
发表于 2009-7-21 13:27 | 只看该作者
你这样试一下,把SQL语句的where条件用变量代替,不直接用常量,用SQL ADV执行,看看数据如何。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表