关于多字段综合查询的问题,先行谢谢了^_^(100分)

娃娃

Unregistered / Unconfirmed
GUEST, unregistred user!
假设有这样一个库

产品类别 出仓数量 入仓数量

这三个字段中,“产品类别”在后期综合应用
如出报表、查询等方面分类时使用。

现在的问题是,这个产品类别因为种种原因,
不是唯一值,而且不能放在一个字段中,只能
放在一个子表中,如下格式:

产品类别第一段内容 产品类别第二段内容 ……

如何才能够在后期使用时,把这几个字段内容加
在一起并且能像一个字段那样使用?

如: select (产品类别第一段内容 + 产品类别第二段内容+……) from AA
where (产品类别第一段内容 + 产品类别第二段内容+……) like 'XXX'
group by (产品类别第一段内容 + 产品类别第二段内容+……);

不知道能不能实现?还望各位大侠出手啊!
 
如果你的SQL语句要这样写!
那你为什么不在那个子表中添个字段(产品类别第一段内容 + 产品类别第二段内容+……)
呢?
 
不能。
我看你的数据库设计可能有问题,将来会遇到更多麻烦的。
最好把“这个产品类别因为种种原因,不是唯一值,而且
不能放在一个字段中,只能放在一个子表中”的“种种原因”说一下,
对产品类别进行这样的处理让人感到非常奇怪。
 
其实关于这个产品类别我也是想了很久才决定这样做的。
没有办法啊。

这个产品类别的结构:
其实是指该产品所用的原料。
1、一般不会超过五种,不过不一定是多少种。
2、每一种原料有四个信息点,原料名称,原料批号,原料类型,原料比例。

大伙也出出主意如何做这个库结构?
 
另外还有一个问题 :
现在有一个进仓流水帐,一个出仓流水帐

如何生成任意指定日期的日报表
报表结构大致如下:

产品类别 上日结存 本日生产

如何做?不要说每次都要计算!
如果现在2002/07/25做2001/07/25的报表是不是要
把一年之内的数据汇总一下再出报表?

有没有什么简单的方法?
 
看来是你的后期应用中有点怪!
这样的数据库设计还是能说得过去的。

至于你说的报表的问题,你需要的哪里是任意日期的日报呀,按你举的例子简直都可以称
为年报了。你的应用这么麻烦,应该会是一个大的数据库了(假设),你可以在数据库中设
定自动进行日报和月报的生成工作并保存到相关的表,那么象你要的报表结果就可以通过
中间表来实现了,而且可以大大减少出报表时的计算量。
 
to armyjiang:
谢谢你的回答,不过你有没有什么实际的解决方法?
如果有空再帮忙看看我的这个帖子吧。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1223753
 
我觉得我已经提供了具体的解决思路了呀!
象你这样的应用,你需要设置一个系统零时来对系统数据进行处理。
就你的报表应用来说,你在系统零时生成每天的日报,如果正逢月末,则同时生成月报,
当然暂时不需要输出,定义合适的数据表以存放日报、月报。
有很明确的需求时,再从日报表和月报表中进行数据汇总。
 
你的意思是说,系统自动生成这些报表,而不是由手工生成,
在用户需要的时候就调出来给他们?

这个方法好像也值得斟酌啊?
 
上面那个SQL语句有没有人知道如何实现呢?

特别是Group by这一句,如何分组呢?
 
我看你可以增加一个真正的“产品类别”域,赋予它名副其实的意义,

然后将产品类别子表改名为原料子表,这样虽然范式级别较低,但是毕竟产品
类别修改工作并不会经常发生,所以可以在录入原料子表的时候自动更新产品
类别域,产品类别主要供统计工作使用,而原料子表则更多涉及技术工作,还
是分开比较合理。况且,高级别范式增加计算量是必然的,选择使用的范式而
不是单纯的高级范式。

我做系统的时候一般避免将那些作为统计依据的字段做成子表,这样写SQL方
便一些。另外,不同问题域的表(比如一个面向销售一个面向生产)可以适当
分开。

另一个方案是把产品类别做成产品类别编号,然后将产品类别编号作为产品原
料子表的外部主键,这样既方便了统计,又能符合较高阶范式。不过像你的那
种针对产品类别的like条件就不适用了。

对你的产品不了解,瞎说几句 :D
 
其实你说的也有道理,最开始我也是这样想的,依你的思路
就是建立一个产品种类代码表,把子表的每一行加一个代码
然后在主库中就用代码,以前我做其它系统的时候也是这样
的,但是这个不行,这个产品类型基本上是每天都在小变化
每月每星期都有大变化,而且还有一个配比用量在里面,问
题变得很复杂,我现在也是头痛的很啊
 
以前人工管理的时候他们是怎么管理这些数据的呢?照这样的话他们的管理员就成了超级电脑了 :D
 
可能他们的确是超级电脑吧,的确是这样的,而且现在
因为这个问题搞的出报表的效率极其低下,有没有朋友
给一点建议的?
 
我看你还是多和他们以前的数据管理员谈谈,看看他们有没有什么措施改进手工管理方式,毕竟他们最了解这项业务。
 
不好意思,我现在就是管理员。现在这个工程真是搞到我头都大了。
没有什么好的思路,解决方法非常落后,在这里写这篇贴子也就是
想听听大家的意见。

不知道那位大侠能给一点实质性的提示?
 
你可以在数据库里面再个字段.表示不同类别。
 
好的,我试试看吧。
 

Similar threads

S
回复
0
查看
987
SUNSTONE的Delphi笔记
S
S
回复
0
查看
788
SUNSTONE的Delphi笔记
S
S
回复
0
查看
805
SUNSTONE的Delphi笔记
S
顶部