帮忙写程序 或 求解算法

corao 2000-06-12 11:13:00
原表:

结构与数据如下:

编号 and 项目 and 型号 and 数量 and 金额 and 时间
002 1 1 12 12 2000-06-12 12:00:00
002 1 2 22 22 2000-06-12 12:00:00
002 1 3 30 30 2000-06-12 12:00:00
002 1 4 14 14 2000-06-12 12:00:00
002 2 1 25 25 2000-06-12 12:00:00
002 2 2 16 16 2000-06-12 12:00:00
002 2 3 27 27 2000-06-12 12:00:00
002 2 4 38 38 2000-06-12 12:00:00
002 3 1 49 49 2000-06-12 12:00:00
002 3 2 10 10 2000-06-12 12:00:00
002 3 3 11 11 2000-06-12 12:00:00
002 3 4 12 12 2000-06-12 12:00:00

003 1 1 12 12 2000-06-12 12:00:00
003 1 2 22 22 2000-06-12 12:00:00
003 1 3 30 30 2000-06-12 12:00:00
003 1 4 14 14 2000-06-12 12:00:00
003 2 1 25 25 2000-06-12 12:00:00
003 2 2 16 16 2000-06-12 12:00:00
003 2 3 27 27 2000-06-12 12:00:00
003 2 4 38 38 2000-06-12 12:00:00
003 3 1 49 49 2000-06-12 12:00:00
003 3 2 10 10 2000-06-12 12:00:00
003 3 3 11 11 2000-06-12 12:00:00
003 3 4 12 12 2000-06-12 12:00:00




目标表:

编号 and 项目 and 型号1 and 金额1 and 型号2 and 金额2 and 型号3 and 金额3 and 型号4 and 金额4
002 1 12 12 22 22 30 30 14 14
002 2 14 14 16 16 27 27 38 38
002 3 49 49 10 10 11 11 12 12
003 1 12 12 22 22 30 30 14 14
003 2 14 14 16 16 27 27 38 38
003 3 49 49 10 10 11 11 12 12


要求:如果原表中的无编号002、项目1、型号1等的记录,则对应的目标表中的型号1与金额1为null。


...全文
239 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
corao 2000-06-19
  • 打赏
  • 举报
回复
问题解决:
我的方法是用两个Query,源表Query 加order by 项目,型号,目标Query编历
源表对应插入数据。
不过,这个问题解决了,随之的问题产生。(打印)

>> 谢谢halfdream:你的方法我试过,
1:在矩阵表中,如果我的型号不小于10种,那么你提供的方法会使矩阵表的字
段冗长。
2:其中我的源表中还有日期、人员工号等字段,日期为Where条件。
3:你所提供的方法统计比较快。(比我快)
halfdream 2000-06-18
  • 打赏
  • 举报
回复
SORRY, 我回来慢了。
这个问题我试过了。只是那个NULL的问题搞定所以我一时没有回。
也是用一个表辅助计算。这是一种比较常用的方法。
先建一个辅助表:
C :
style , c1 ,c2 ,c3 ,c4
-----------------------
1 , 1 , 0, 0, 0 (你可以把其中0改为NULL试试)
2 , 0 , 1, 0, 0
3 , 0 , 0, 1, 0
4 , 0 , 0, 0, 1
------------------------
假设原表为A 结果表为R
则可以
insert into R(编号,项目,型号1,金额1,型号2,金额2,型号3,金额3,型号4,金额4)
select A.编号,A.项目,SUM(A.数量*C.C1),SUM(A.金额*C.C1),
SUM(A.数量*C.C2),SUM(A.金额*C.C2),
SUM(A.数量*C.C3),SUM(A.金额*C.C4),
SUM(A.数量*C.C4),SUM(A.金额*C.C4)
from A,C
where A.型号=C.style
group by A.编号,A.项目
其中如果用中文字段名的话.要加上引号.
在调试的时候, 可以先把INSERT那一行去掉看看结果是否正确.
corao 2000-06-17
  • 打赏
  • 举报
回复
分不够吗, 可以,只要你开口.
corao 2000-06-17
  • 打赏
  • 举报
回复
没人理我吗.help
corao 2000-06-14
  • 打赏
  • 举报
回复
to halfdream:
看过,没看懂!

to all
帮帮我吧,大虾们。
corao 2000-06-14
  • 打赏
  • 举报
回复
to halfdream:
Hibin 2000-06-13
  • 打赏
  • 举报
回复
用TDecisionGrid好了
corao 2000-06-13
  • 打赏
  • 举报
回复
Wu!WU!
help me!
Un1 2000-06-13
  • 打赏
  • 举报
回复
halfdream 2000-06-13
  • 打赏
  • 举报
回复
一下子来不及回答你这个问题,
不过你可以看看以前我对一个问题的回答,多少或许有点启发。
http://expert.csdn.net/TopicView.asp?id=5596

5,379

社区成员

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

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