终合查询!!(sql)(20分)

  • 主题发起人 主题发起人 hymen1
  • 开始时间 开始时间
H

hymen1

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个表有以下字段:、、、、、、、、、、、、

只是查一个表里的各个字段的终和情况。

还是不写算了,那位有终合查询的例子、、、、、大家研究研究。

先谢了!
 
有人吗?
 
select sum(x),sum(y),sum(z) from yourtablename
你可以试试的
 
sorry 我写错了
不是求和,而是列出要查询所有字段的排列组合。

 
先写基本的语句
var
s:String;
begin
s:=select * from table ;
if 条件1被满足 then s:=s+'条件1';
…………………………………………
Query1.sql.add(s);
我想这样大概可以了吧,呵呵
 
1、但是后面的
pamrabyname(a).asstring=edit1.text
还要判断阿

2、字段太多了,嵌套if很麻烦!
还要判断那一个字段在第一位!!??

有没有好的方法呢?
 
select * from table
where (field1=条件1 or 条件1='')
and (field2=条件2 or 条件2='')
and (field3=条件3 or 条件3='')
and (field4=条件4 or 条件4='')
and (field5=条件5 or 条件5='')
 
就是哪个“and”还要判断啊!

嵌套比较长啊,有没有简洁的语句呢!
 
我靠!大哥你还能行不,我是没办法了。你再问问别人吧。
 
你这样肯定能够实现
strSQL:AnsiString;
strSQL='select * from tableName where 1=1';
if(edit1.text<>'') then
strSQL=strSQL+' and filed1=''+edit1.text+''';
if(edit2.text<>'')
strSQL=strSQL+' and filed2=''+edit2.text+''
..............
..............
增加了一个1=1条件,帮你解决了第一个条件是否带and 的问题
只要有条件你使用strSQL=strSQL+' filedn=''+条件+''';
 
大家谈论谈论嘛!!
 
能不能给你解决问题?
 
可以尝试一下!◎

有好的大家再讨论讨论!1
我现在用的方法是 s+ 全部都加上“条件=a and”,然后 s再减去三个字符“and"

这样不知道行不行呢?1
 
还是用yesye的方法简单些
 
还可以用
Select ...
From ...
Where
(:Param1 = '' or Field1 = :Param1) and
(:Param2 = '' or Field2 = :Param2) ...

这样就不用判断了,SQL写一遍就好,参数付一遍就行
 
我倒!yesye你是怎么想出这个办法的,服了,我的程序也可以改了。呵呵~~~~~~~~[:D]
 
遇到日期型就不知道怎么办拉!
 
后退
顶部