有关SQL的问题(5分)

  • 主题发起人 主题发起人 李学先
  • 开始时间 开始时间

李学先

Unregistered / Unconfirmed
GUEST, unregistred user!
<h3>我的几个急待解决的简单问题</h3>
<font color="blue">
1.关于<font color="red">Paradox数据库</font>中的<font color="red">已经过排序计算字段</font>,实现查询Top N功能即只返回排序的前N条记录<br>
<P>
2.Decision Cube如何实现图形的动态改变:柱形图,饼图,线图(其中涉及到的SQL语句全是动态生成的)<br>
<P>
3.如何打印Decision Cube图形
<P>
4.在Excel数据库在DBGrid显示时,如何解决列宽问题<br>
<P>
5.在SQL中能否用自己编写的函数?(自定义函数中所用的函数全是SQL函数)<br>
<P>
6.在SQL中是否有Replace()函数<br>
<p>
<p>
<font size='5'><b>关于问题的详细解释</b></font><br>
<P>
1.这个问题我曾经问过一次,而且“温柔一刀”也给我过详细的答复,但未能解决我的问题,<br>
&amp;nbsp;&amp;nbsp;却增长了我不少见识,使我对SQL语言的功能有一个重新认识,但由于我是个初学者,SQL<BR>
&amp;nbsp;&amp;nbsp;语言学的不好,也不是科班出身,所以也没学过多少数据库理论,直到今天我都未能彻底理解<br>
&amp;nbsp;&amp;nbsp;
“温柔一刀”给我写的SQL语句。<br>
&amp;nbsp;&amp;nbsp;现将“温柔一刀”的SQL语句附下:<br>
&amp;nbsp;&amp;nbsp;
select * from animals where weight>(<br>
&amp;nbsp;&amp;nbsp;
select max(weight) from animals w2 where<br>
&amp;nbsp;&amp;nbsp;(select count(*) from animals where weight &amp;lt;w2.weight)<br>
&amp;nbsp;&amp;nbsp;
&amp;lt;(select count(*)-n from animals )) order by weight desc<br>
&amp;nbsp;&amp;nbsp;
以上SQL语句可以解决<font color="red">非计算字段</font>的查询,但对有<font color="red">计算字段</font>的查询好像不行。<br>

&amp;nbsp;&amp;nbsp;我的初使解决办法是: <br>
&amp;nbsp;&amp;nbsp;
with query1do
<br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;
begin
<br>
<nobr> &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
sql.add('select top 2 name,deptno,sum(subtotal)Total');//Name,deptno,subtotal都是表中字段</nobr><br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
sql.add('from ot ');
//OT是表的别名<br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
sql.add('group by name,deptno ');<br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
sql.add('order by Total');<br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
prepare;<br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Open;
<br>
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
end;
<br>
&amp;nbsp;&amp;nbsp;//以上语句在SQL数据库中可以,但在Paradox数据库中不行。<br>
&amp;nbsp;&amp;nbsp;因此请各位帮忙。<br>
<P>
2.Decision Cube中缺省图形是柱形图,我想改变为其它的图比如:饼图、线形图等,但不知如何改<br>
&amp;nbsp;&amp;nbsp;注:<font color="red">SQL语句是动态生成的,</font>因此Serial是不固定的。<br>
<P>
3.我在A4纸上打印时,结果是整张纸上只有一个图,而且比较小,现在我想在一伥纸上打印<BR>
&amp;nbsp;&amp;nbsp;几个图或将一个图打印的大一些,该如何做(请大家先在机器上试验一下)<br>
<P>
4.我用DBGrid显示Excel数据库听工作表时,出现一列占全了整个表格,必须不断拉动<BR>
&amp;nbsp;&amp;nbsp;横向滚动条才能看<font color="red">全部字段</font>,不论我将分辩率设为多大也是如此,但别的数据库<br>
&amp;nbsp;&amp;nbsp;不存在这样问题。这个问题也请先在机器上试一下,可能会明白我是什么意思。<br>
<P>
<nobr>5.我想自己编写SQL函数供程序调用。在我自已编写的函数中,凡是涉及到的函数<font color="red">全是SQL的内置函数</font>,这样不知行不行</nobr><br>
&amp;nbsp;&amp;nbsp;即在Query1.sql.add('');中调用了SQL中没有的函数而是我自己编写的函数,不知说清了没有。<br>
<P>
6.我曾经在某本书上看到说是SQL中内置有一个字符串函数Replace(Str,substr,repstr:string),<BR>
&amp;nbsp;&amp;nbsp;其中Str是母串,Substr是关键串,RepStr是替换串<br>
&amp;nbsp;&amp;nbsp;该函数的功能是:在Str中查找子串Substr,并将之替换为RepStr,若第三个参数为空,则删除该子串<br>
&amp;nbsp;&amp;nbsp;我在机器上试了一下,编译通不过,因此向各位高手请教<br>
<nobr>&amp;nbsp;&amp;nbsp;我之所以想用这个函数,因为我想利用它的删除字符串中的子串功能,比如<font color="red">删除字符串中的空格</font>,这在数据库中很有用,</nobr><BR>
&amp;nbsp;&amp;nbsp;例如有一个数据库的字段为Name,是英文名称或汉语拼音,中间有空格,因此在查找时,<br>
&amp;nbsp;&amp;nbsp;用户输入的空格的多少与位置是不定,我想实现在按名称查找时不区分空格。不知有没有好的办法。<br>
&amp;nbsp;&amp;nbsp;我采用了一个十分愚蠢的办法:建了一个临时表,先将数据过滤然后再作处理。<br>
</font>
<P>
<h4 ><FONT color='red'>
希望各位帮忙,想回答几个就回答几个,以上几个问题是我长久以来没有解决的问题,<br>
或者是没有找到一个好的解决方法,在此忠心希望各位帮助一下,我上大富翁并不久,前<br>
一段时间我也问了几个问题,可能由于我说的不清楚,所以答复总不能很满意,我不挑<BR>
剔,但最好能解决我的问题,其中几个问题,版主可能见过类似的问题,但也希望版主给多保留几天.</H4>
</font>
 
我一个也不会。
 
回答问题4。
dbgrid显示时,默认每个单元格的宽度为数据库中表的字段宽度,编程改变dbgrid每列的显示宽度就行。如:
for i:=2 to 8do
DBG_month.Columns.Width :=30;
for i:=9 to 12do
DBG_month.Columns.Width:=50;
DBG_month.Columns [13].Width :=100;
 
附加功能 将问题提前
 
后退
顶部