Sql问题(50分)

  • 主题发起人 主题发起人 server
  • 开始时间 开始时间
S

server

Unregistered / Unconfirmed
GUEST, unregistred user!
一个表中有一个日期字段和数量字段,
增样查询每个月的数量总和。
 
好象只能用临时表,将日期yyyy/mm放到库中再group查询
 
Query1.Sql.add('select sum(数量) ');
Query1.Sql.add('form yourtable ');
Query1.Sql.add('where extract(month from 日期)=:month'):
Query1.ParamByName('month').asinteger:=你要查的月份。
Query1.Open;
 
oracle和sql server等数据库的group by子句都可以是表达式
例oracle下
select to_char( rq, 'yyyy/mm' ), sum( nums )
from usertable
group by to_char( rq, 'yyyy/mm' )
SQL server下
select substring( convert( char(20), rq, 120 ), 1, 7 ), sum( nums )
from usertable
group by substring( convert( char(20), rq, 120 ), 1, 7 )
其它数据库下,选用正确的SQL表达式
 
只好用临时表了,hekai说的在PARADOX,DBASE中都不支持.
 
我说的在PARADOX,DABASE,LOCAL SQL 中都支持!
 
TO: liwei
不必讨论,你自己试试就知道了.
 
我用access数据库
后来发现用group by datapart("m",datefield)
就可以了
 
to: nickname

以下是我程序中的原话:
op.SQL.add('select * from Cargo_out where EXTRACT (month FROM out_date)=:themonth');

好像没什么问题嘛。
有什么不对,烦请指出。
 
select extract(year from out_date) as yr, extract(month from out_date) as mn, sum(special_value) from your_local_database group by yr, mn
 
把extract放到group by里面再试试吧
 
可以就结束问题喽,顺便问一句,老兄知道网上哪里有关于
access的书吗?
 
多人接受答案了。
 
后退
顶部