我是新手:从A表到B 表 用SQL 语句怎么写?各位仁兄请指教。

lmy 2000-07-25 01:20:00
------
源表:(A)
------
b1------b2------- b3----b40-- b41... b412----b50---- b51........b512
JS01 涤棉 80S 100 .............. .......................
JS02 .... .... .... ....... ........................
:
:
_____________________________________________________________________
B1产品代码;B2:产品名称;
B3产品型号;
b40至B412为年初到12月的数量结存。
B50至B512为年初到12月的金额结存。
-------
目标表:(B)
-------

WARENO----WARENAME---CMONTH----SLJC----JEJC
JS01 涤棉 1 100 200
JS02 .....................................................

__________________________________________________________________
CMONTY :月份,比如是查询B41字段即1月份。SLJC:数量结存。jejc:金额结存。



...全文
196 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmy 2000-07-26
  • 打赏
  • 举报
回复
谢谢各位仁兄,小弟先试试,不过分已送出。
halfdream 2000-07-25
  • 打赏
  • 举报
回复
用一个表辅助计算.
预先建一个辅助表:
C :
id ,c0, c1 ,c2 ,c3 ,c4,。。。c11,c12
-----------------------
0 , 1 , 0 ,0 ,0 ,0 0 , 0
1 ,0 , 1 , 0, 0, 0 .......0 , 0
2 ,0 , 0 , 1, 0, 0 ..... 0 ,0
3 ,0 , 0 , 0, 1, 0 .......0 ,0
4 ,0 , 0 , 0, 0, 1 .....0 ,0
..........
..........
11 ,0 , 0 , 0 , 0 , 0 1 ,0
12 ,0 , 0 , 0 , 0 ,0 ........0 ,1

有了这个表,就可以这样:
insert B(WARENO,WARENAME,CMONTH,SLJC,JEJC)
select A.b1,
A.b2,
C.id,
A.b40*C.c0+A.b41*C.c1+....+A.b412*C.c12,
A.b50*C.c0+A.b51*C.c1+....+A.b512*C.c12
from A,C
where C.id = :mouth
尽管看起来长了一点, 不过总体上还是比较简单的:)
在调试的时候, 可以先把INSERT那一行去掉看看结果是否正确.
biner 2000-07-25
  • 打赏
  • 举报
回复
不好意思,我是个笨人,只能想到这种笨办法,不知合不合你的要求,我用的SQLServer的语句,其他的应该差不多,如果要选择插入B表的话,只要用此语句创建存储过程,传递参数进去,再在插入时加入判断即可。谁有更简单的方法也告诉一下吧。
declare lmy_cursor CURSOR
for
select b1,b2,b41....b512 from a

open lmy_cursor
declare @lmy_b1 char
declare @lmy_b2 char
declare @lmy_b41 int
declare @lmy_b42 int
...
...
...
declare @lmy_512 char

fetch next from lmy_cursor into @lmy_b1,....@lmy_b512
WHILE (@@FETCH_STATUS <> -1)
begin
insert into b values(@lmy_b1,@lmy_b2,1,@lmy_b41,@lmy_b51)
insert into b values(@lmy_b1,@lmy_b2,2,@lmy_b42,@lmy_b52)
...
...
...
insert into b values(@lmy_b1,@lmy_b2,12,@lmy_b412,@lmy_b512)
end
close lmy_cursor
DEALLOCATE lmy_cursor
zzh 2000-07-25
  • 打赏
  • 举报
回复
SQL7不是有Import数据功能吗,把数据库捣一下不就得了。
imhere_l 2000-07-25
  • 打赏
  • 举报
回复
insert...select...
lmy 2000-07-25
  • 打赏
  • 举报
回复
RE:
HALFDREAM
你什么时候有空?
halfdream 2000-07-25
  • 打赏
  • 举报
回复
好象一条SQL 就够了:)
SORRY,不是故意卖关子,只是现在时间来不及了。
huntout 2000-07-25
  • 打赏
  • 举报
回复
你用的是甚麼數據庫?需要具體代碼嗎?
huntout 2000-07-25
  • 打赏
  • 举报
回复
得用Cursor一行一行的讀。
peng_hui 2000-07-25
  • 打赏
  • 举报
回复
这可能得要通过写程序或存储过程来完成。
peng_hui 2000-07-25
  • 打赏
  • 举报
回复
这可能得要通过写程序或存储过程来完成。
Wingsun 2000-07-25
  • 打赏
  • 举报
回复
要用多条SQL语句才能完成你的需求。

5,386

社区成员

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

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