这条SQL怎么写?(100分)

  • 主题发起人 主题发起人 jw
  • 开始时间 开始时间
J

jw

Unregistered / Unconfirmed
GUEST, unregistred user!
表1:号码,名称
表2:号码,每小时的费用,类别(这里每个号码有多条记录,类别有4类,
另外此表按月命名,每个月一个表如200006.db,200007.db......)
求SQL语句:按表1的号码统计费用,在DBGRID中如下显示:
号码,类别1费用,类别2费用,类别3费用,类别4费用,总费用
最后一行显示各个单项的费用和.
另外:若要按某个单独的号码求费用又如何写SQL呢?
尽量不用到写入到一个临时表的做法?
 
真麻烦。
 
一条SQL能行吗?
 
select 号码,sum(费用)
from tablename
group by 号码
union
select '总计',sum(费用)
from tablename
 
agree with dedman
但他没答全 我来捡一点分吧

>若要按某个单独的号码求费用又如何写SQL呢
select sum(费用)
from tablename
where 号码 = :strNo
parambyname(':strNo') := edit1.text
 
用嵌套的SQL语句:
select (select sum(费用) from 表2 where 类别=1) 类别1,
(select sum(费用) from 表2 where 类别=2) 类别2,
(select sum(费用) from 表2 where 类别=3) 类别3,
(select sum(费用) from 表2 where 类别=4) 类别4
form 表2 group by 号码
这个我没有试过,但我原来有个问题是这样解决的!如果不行你可以按这个思路去做做!
若按单独的号码,那就不用gruop by ,用where 号码=***
 
如果 表2 中每小时的费用指各个小时 即 有纪录
1,20,1 /* Am8:00-Am9:00 * /
1,10,1 /* Am9:00-Am10:00 */ 等
则上面的方法好像都不行

我在 SqlServer 7.0 中用以下语句 /* Id:编号 m:每小时的费用 k 类型
select 表1.id,a.mm as k1,b.mm as k2, c.mm as k3, d.mm s k4
form 表1 full outer join
(Select id,sum(m) as mm from 表2 where k=1 group by id) a
on 表1.id = a.id full outer join
(Select id,sum(m) as mm from 表2 where k=2 group by id) a
on 表1.id = b.id full outer join
(Select id,sum(m) as mm from 表2 where k=3 group by id) a
on 表1.id = c.id full outer join
(Select id,sum(m) as mm from 表2 where k=3 group by id) a
on 表1.id = d.id
compute sum(a.mm),sum(b.mm),sum(c.mm),sum(d.mm)

如果按某个单独的号码求费用
将 上面 compute sum(a.mm),sum(b.mm),sum(c.mm),sum(d.mm) 一句
换成 where 表1.id= ***

我试过了,肯定可以,别忘了给我分呀! ^_^
 
谁能告诉我DELPHI5.0企业版的下载地址,只要链接正确立即给分?
 
to jw
component.myrice.com
快给分
 
while ....
sTable:="表";
nCount:=200000;
sql:=" select sum(类别1) ... sum(类别4) from 表"+nCount +" where 号码=" +
号码;
...Execute sql
nCount:=nCount+1;
...
最后一行可手动控制
 
jw 兄:
1、首先你用的是文件型的数据库,他们的SQL功能往往不是特别的强大,我怀疑out jion外
连接是否可用。而且union也不一定能够用。
2、可用用一些比较好的控件,如果能够找到一个向PB中DATAWINDOW的东东,你的问题迎刃
而解。如果不能找的话,合计的数据用程序生成,然后加到你要的表格中。
3、由于你的问题需要操作的表太多,如果是我做的话,我宁愿每个表打开一次,获得数据
后用程序添到表格中。开起来实现有些麻烦,实际上你做起来就会感觉十分的简单
 
component.myrice.com主页已封掉,谁来救我?Driver大使!!!!!
@#@#@#@#@#
 
component.myrice.com主页已封掉,谁来救我?Driver大使!!!!!
@#@#@#@#@#
 
component.myrice.com主页已封掉,谁来救我?Driver大使!!!!!
@#@#@#@#@#
 
为什么每个月一个表呢?
最好是使用一个表
 
delphi5.4u.ru中的软件如何下载,谁能告诉我?每次一点击链接就弹出广告?
help me! Send You 100分!!!
 
附加功能 将问题提前
 
哪有像你这么问问题的??
 
我也有类似的问题,如果不考虑jw所提"每个月一个表(实际上我认为可以方在一个表中)",
用Urlzo的方法可以实现,但记录多时速度会很慢,可有更好的办法?一条语句不行,那么
多条语句也可。希望大家继续讨论,我可以在家200分。
不过不知道怎么加分给别人提的问题。

>>jw: 似乎你对所提问题并不关心,而关心在那儿D d5,买张D版光盘不就得了?(才2、3块)
 
后退
顶部