如何写这样的SQL?(50分)

  • 主题发起人 主题发起人 QQ
  • 开始时间 开始时间
Q

QQ

Unregistered / Unconfirmed
GUEST, unregistred user!
现有如下表:
...
XSDD //销售地点
BYSR //本月收入
SRDW //收入单位
SBRQ //上报日期
...
有报表如下:

销售单位
本月收入
累计收入
上报日期

我只会用类似的两句SELECT实现,可能有问题,临时写的,大致是着个意思:

SELECT XSDD,SUM(BYSR) AS '...' GROUP BY XSDD
SELECT XSDD,BYSR WHERE SRQQ > :d1 AND SBRA < :D2

是不是有可能用一个SQL语句生成?这样用QUICKREPORT就很方便了.

或者有其他高招,也请指教
 
select xsdd,sum(bysr) from temp where srqq>:d1 and sbra<:d2 group by xsdd
 
<a href=http://www.gislab.ecnu.edu.cn/delphibbs>delphi_bbs</a>
 
<a href=http://www.gislab.ecnu.edu.cn/delphibbs>delphi_bbs</a>
 
sorry, 没看清题目:

SELECT XSDD,BYSR FROM TEMP UNION JOIN
SELECT XSDD SUM(BYSR) FROM TEMP GROUP BY XSDD
 
I think eYes means use a temp database and what chenke means?
I do not very momelia to sql is join done?
 
不不不,您误会了, 您的sql中没写from部分. 不知道您的数据库表名,所以随便取了个
名字, 申明一下: 我上述的"temp"指你的表名(就是您说的"如下表"的名字)
 
刚看到这个问题时,我的感觉也是使用Union,但是后来一想,使用了Union后
虽然能返回结果,但顺序是乱的;
QQ想要的结果是: ... ...
... ...
合计 ...

... ...
... ...
合计 ...
而使用了Union的结果是:
... ...
... ...
... ...
... ...
合计 ...
合计 ...

既然QQ是想在QuickReport中实现Group的效
果,QuickReport本身就能实现,参看Delphi的例子:Demos/Quickrpt/qr2demo.dpr
 
刚看到这个问题时,我的感觉也是使用Union,但是后来一想,使用了Union后
虽然能返回结果,但顺序是乱的;
QQ想要的结果是: ... ...
... ...
合计 ...

... ...
... ...
合计 ...
而使用了Union的结果是:
... ...
... ...
... ...
... ...
合计 ...
合计 ...

既然QQ是想在QuickReport中实现Group的效
果,QuickReport本身就能实现,参看Delphi的例子:Demos/Quickrpt/qr2demo.dpr
 
dubhe: 用Union可以的,做QREPORT时再把顺序颠倒就可以了;)
eYes:sorry ur type speed is faster than mine, so i just see the first
line u write
 
使用的是什么数据库,各个数据库对Union的操作不一样!
 
PARADOX,Thank you
but the union join cannot be used I do not know why?
 
hehe, paradox只支持local sql
local sql有成吨的限制(很多工作用local sql无法实现)
local sql好象不支持union, 只支持join
如果您用paradox, 劝您别费心找什么用一句sql表达上述功能的方法了, 因为不可能
实现
 
数据库不支持,谁也没办法!
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部