SQL语句怎样写各位仁兄请指教?!

eire 2000-07-20 11:25:00

产品:[0101001]
--------------------------------------------------------------------------------------------------
日期 入库数量 入库单价 入库金额 出库数量 出库单价 出库金额 结存数量 结存单价 结存金额
--------------------------------------------------------------------------------------------------
2月结存 - - - - - - 60 5 300
---------------------------————————————————————————————————————
99/02/21 10 5 50 5 5 25 65 5 325
--------------------------------------------------------------------------------------------------
99/04/22 10 5 50 5 5 25 70 5 350
--------------------------------------------------------------------------------------------------

—————————————————————————————————————————————————
3-6月合计 20 - 100 10 - 50 70 5 350
——————————————————————————————————————————————————
如查询3-6月,期初结存处一行的结存数量金额应是2月底的余额。
DBGRIDEH+DELPHI5
请问:1。SQL如何写,数据库有出入出明细库(A),库存库(B)
2。DBGRID如何把‘2月结存’标题与其数量,金额填在列中。
A库结构:

B0 B1 B2 B3 B4 B5 B6
0 99/02/21 PACKING01 10 5 ‘明永制衣’ 0101001
1 99/02/21 YS0000001 10 5 ‘春生牧业’ 0101001


B6:产品代码;
B0为入出标志:0:入库:1:表出库
B2 单据号码
B3 数量 B4:单价 B5:入库供应商,出库买家。
——————————————————————————
B库:B3:材料代号;
B41-B412为1-12数量
B51-B512为1-12单价

B3 B41 B42 .... B412 B51 ...B512
0101001 1000 100 100 10 133
--------------------------------------------------------------------

...全文
562 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
eire 2000-07-25
  • 打赏
  • 举报
回复
请大家开口
eire 2000-07-25
  • 打赏
  • 举报
回复
不用UNION
有其他办法吗,回为两库结构不同。
Hank 2000-07-25
  • 打赏
  • 举报
回复
方法是有很多种,就看你有没有耐心!我先提供两种方法:
1、创建一个临时表(如果不会,可以查相关资料。注意:数据库不同建立的方法有点不同),然后把所有的查询结果等等一系列的东西全部转到这个表中。那就成了你要的结构。当然,这种方法可能会因数据库不同显的很慢!我有类似的例子,针对Access97数据库,如果有1000条记录,差不多一分钟!当然DBF数据库就快多了,但也差不多30秒,因为时间都浪费在你将主查询结果一条条转入临时表上了!

2、用视图(CREATE VIEW VIEW_NAME SELECT...)。首先把二月份的结存创建到一个视图,然后将目前的查询结果放到另外一个视图,然后用UNION将他们连接起来即可。需要注意的是:在某些数据库里面,CREATE VIEW、SUM、GROUP BY、WHERE四个关键字不能同时使用!如果有这种情况,那不幸,只有用第一种方法!

其实这个问题的根本在于:在DELPHI中,不能从查询里面连续查询!而大伙早就适应了FOX系列那一套,所以各位的绝大部分方法都行不通!唉,当初这个问题也是搞了我很久!
OK!
Wingsun 2000-07-21
  • 打赏
  • 举报
回复
OK
eire 2000-07-21
  • 打赏
  • 举报
回复
高见,多谢,我的OICQ 是10156830 有空多交流?
Wingsun 2000-07-21
  • 打赏
  • 举报
回复
你是要显示“2月结存“几个字符?
Select '2月结存' As FirstCol ,Field1,... From Table1
Union
Select Field0 as FirstCol, Field1,.... From Table2
有OICQ,没有ICQ.
eire 2000-07-21
  • 打赏
  • 举报
回复
对不起上面的信息不是’每一行’应是‘第一行’
eire 2000-07-21
  • 打赏
  • 举报
回复
这样只是把数据全部搬过去,可每一行的上月结存数不能显示比如上面的’2月结存‘;
BTW,你有ICQ吗?
Wingsun 2000-07-21
  • 打赏
  • 举报
回复
你在上海,我在南京。
Wingsun 2000-07-21
  • 打赏
  • 举报
回复
查询出来的结果是一个TQuery的集合,通过DBGrid的DataSource属性可以将他们联系在一起。
eire 2000-07-21
  • 打赏
  • 举报
回复
请问WINGSUN身居何处?
eire 2000-07-21
  • 打赏
  • 举报
回复
查询出来后,如何把其数据按上面的格式放入DBGRIR中呢,(DELPHI5)
在ONDRAWCELL 事件中?
Wingsun 2000-07-21
  • 打赏
  • 举报
回复
你的语法有错误,不能使用*,UNION要求相对应的字段类型必须一致,每一个Select语句中的字段数目要一致。
Select Field1,Field2,Field2,Field4 From Table1
Union
Select Field1,Field2,Field2,Field4 From Table2
eire 2000-07-21
  • 打赏
  • 举报
回复
示范下OK?
eire 2000-07-21
  • 打赏
  • 举报
回复
为什么会出现‘ 类型不匹配在表达式中‘ (TYPE MISMATCH IN EXPRESSION)
select * from 'c:\data\items.db' union select * from 'c:\data\country.db'
Wingsun 2000-07-21
  • 打赏
  • 举报
回复
两条SQL语句UNION,第一条取得2月的余额,在UNION上3-6月的结果,就可以了。我也想知道别处有没有,看过一些地方的论坛,界面不友好。
eire 2000-07-21
  • 打赏
  • 举报
回复
WINGSUN 老兄,还有比这更热闹的论坛吗?
eire 2000-07-21
  • 打赏
  • 举报
回复
再问:假如查询3-6月,上月结存处一行的结存数量,金额应是2月底的余额,而在DBGRID 中应放在3月前,位置怎么确定?
Wingsun 2000-07-21
  • 打赏
  • 举报
回复
支持,最好使用别名。
eire 2000-07-21
  • 打赏
  • 举报
回复
请问:?WINGSUN ”数据库系统支持就可能使用“,那同一目录下的多个DBF数据库能支持吗,(未建‘别名’)?
加载更多回复(8)

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧