求助一个困扰我多年的问题:关于一个表里的记录作为另一个查询的字段

liulin123 2003-10-30 01:47:45
假设有三张表:
user 为人员表,动态维护
part 为零件种类表,动态维护
ope 为零件加工表,用户录入
现在要做一个统计查询:每个人加工每种零件多少个
换句话说,这个查询的字段是随着part表的变化而变化的
请问,如果要用sql来实现的话,有可能一条搞定吗?
...全文
42 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jyk1970 2004-01-17
  • 打赏
  • 举报
回复
1、提供一些测试数据
2、转到SQL SERVER 版
3、若被斑竹皱健看到了,很快(<30min)就能解决!
swordmanli 2004-01-16
  • 打赏
  • 举报
回复
这个问题竟然困惑了多年,太难为你了。
这个问题我认为不要求助于数据库,而只找前端的工具,PB、crystal report等等都可以生成交叉表的。
jukyy 2004-01-15
  • 打赏
  • 举报
回复
弹性域的概念引进,预设足够多的字段,但在读写数据的时候对列的对应关系需要做很大工作量的判断。
batt 2004-01-15
  • 打赏
  • 举报
回复
楼上的说的不对,交叉表里横向字段数目也可以是动态的
zhobin 2004-01-04
  • 打赏
  • 举报
回复
用交叉表
如果是oracle可用decode来解决
其它的数据库,只能在程序里用数组,因为横向字段只能是固定数目, 所以需先知道最多有多少个零件,
当然,如果用pb就很简单了,pb可以直接生成报表
hideakiwang 2004-01-02
  • 打赏
  • 举报
回复
你可能不熟悉交叉表,请到网上查查这方面的资料。通过使用交叉表的模式可以解决你以上的问题,并可以一句搞定。
shawnzhao 2003-12-18
  • 打赏
  • 举报
回复
还是 用select 人,零件,count(1) 个数 from ope group by 人,零件。
前端工具展现时,对"零件"旋转。
liulin123 2003-10-31
  • 打赏
  • 举报
回复
samuelpan(欧乐)
怪我没有说清楚,我要的是人做为记录,零件作为字段的效果

为了方便大家,我给个最精简的表结构出来

user表:
u_id integer
username varchar(10)

part表:
p_id integer
p_name varchar(20)

ope:
o_id Integer 流水号
u_id integer 员工
p_id integer 零件
ope_num integer 加工数量

最后要求的报表:
员工 零件1 零件2 零件3 …… 零件n (这里零件n为具体的零件名称)
张三 2 4 0 …… 9
李四 0 11 0 …… 0
……

差不多清楚了吧?
laijiaxing 2003-10-31
  • 打赏
  • 举报
回复
用一条语句会比较麻烦.
samuelpan 2003-10-30
  • 打赏
  • 举报
回复
select 人,零件,count(1) 个数 from ope group by 人,零件

6,107

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 数据库报表
社区管理员
  • 数据库报表社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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