注册 登录
编程论坛 SQL Server论坛

[求助]这样的目的如何实现?帮帮新手吧.

roy7882 发布于 2007-08-16 23:00, 3816 次点击
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

根据字段中的内容(规格)来进行分类统计数量,并将此数量插入到另一表的数量字段中去

想把下图中的相同的出口规格统计其数量后,插入到上图的数量字段中,帮帮忙吧...(下图是我的"主表"表名为主表,上图是我要插入的表,表名为"表1",上图在插入前应该是无数据的.)

[此贴子已经被作者于2007-8-17 10:25:39编辑过]

61 回复
#2
roy78822007-08-17 09:05

没有人帮下忙吗?

#3
XieLi2007-08-17 09:17
我想知道圖1的表里面有數據嗎。
#4
roy78822007-08-17 09:45
对不起,表1里面应该是没有的.
#5
roy78822007-08-17 10:06
救救命吧,帮帮忙吧////好心人们.
#6
XieLi2007-08-17 10:11
insert into 表1(出口规格,数量) select 表3.出口规格,表3.数量
from (select 出口规格,sum(isnull(数量,0)) as 数量 from 表2 group by 出口规格) 表3


不知道对不对.很久没有做了.
#7
roy78822007-08-17 10:14
谢谢你的回复,但是我没有表3啊.呵呵.

[此贴子已经被作者于2007-8-17 10:15:09编辑过]


#8
XieLi2007-08-17 10:15

我不知道是不是你要的结果啊,因为我也不怎么会啊.

#9
shulei5215212007-08-17 10:21
#10
roy78822007-08-17 10:23
根据字段中的内容(规格)来进行分类统计数量,并将此数量插入到另一表的数量字段中去
#11
XieLi2007-08-17 10:24
我哭了,表3是后面一条(select 出口规格,sum(isnull(数量,0)) as 数量 from 表2 group by 出口规格) 返一个表啊,就当表3
#12
shulei5215212007-08-17 10:35
用手工计算
#13
roy78822007-08-17 10:43
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: ',' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 2
第 2 行: ',' 附近有语法错误。
#14
XieLi2007-08-17 10:47
逗号打错了
#15
roy78822007-08-17 11:14
搞不懂..还是谢谢了..老是报错...幸苦了.
#16
roy78822007-08-17 11:18
现在可以统计出来,就是不会插入.
Select 出口规格 count(*) from 主表 group by 出口规格
现在就想把查询出来的结果(规格,数量)插入到表1中去,规格有很多种,数量各不一样,不知道该怎么做了.
#17
XieLi2007-08-17 13:21
insert into 表1(字段) select 表3(字段)
from (Select 出口规格 count(*) from 主表 group by 出口规格 ) 表3

注明:表3是你查詢結果返回的一個表
#18
XieLi2007-08-17 13:25
你不要統計數量嗎
#19
roy78822007-08-17 13:29
请问楼上的姐姐,我需要建立表3吗?
#20
roy78822007-08-17 13:34
我返回的表名称是什么?在哪看?
#21
roy78822007-08-17 13:36
服务器: 消息 195,级别 15,状态 10,行 2
'表3' 不是可以识别的 函数名。
服务器: 消息 170,级别 15,状态 1,行 3
第 3 行: '(' 附近有语法错误。
#22
XieLi2007-08-17 13:43
把你寫的語句發過來吧。
我看一下。
#23
roy78822007-08-17 13:47
select 出口规格,count(*) from 轧硬卷
insert into 表1(出口规格,数量) select 表3(字段)
from (Select 出口规格 count(*) from 轧硬卷 group by 出口规格 ) 表3
#24
roy78822007-08-17 13:48
回复:(roy7882)select 出口规格,count(*) from 轧硬...
轧硬卷就是我要查询和统计的'主表' 表1是我要将主表中查询的结果插入的表.
#25
roy78822007-08-17 13:50

麻烦姐姐帮我看看,我真不知道这所谓的表3(返回表)的这个概念,我只需要将来查询(统计)出来的结果插入到表1中就行了...表1是个空表,我已经建立好的..

#26
XieLi2007-08-17 13:57
insert into 表1(出口规格,数量) select 表3(出口规格,數量)
from (Select 出口规格, sum(isnull(數量,0)) as 數量 from 轧硬卷 group by 出口规格 ) 表3

試一下吧
#27
roy78822007-08-17 13:58
服务器: 消息 195,级别 15,状态 10,行 1
'表3' 不是可以识别的 函数名。
服务器: 消息 170,级别 15,状态 1,行 2
第 2 行: '表3' 附近有语法错误。
#28
roy78822007-08-17 13:59
姐姐,你说下这表3到底是什么东西嘛,我没有表3呀?如果是返回的一个结果表,那我想表名应该不是表3吧?这个返回的表名在哪看?>
#29
XieLi2007-08-17 14:08
表3是一個表名
是你查詢的結果。
#30
roy78822007-08-17 14:09
这个表名在哪看啊?我如何知道它的表名呢?急死了.呵呵.
#31
roy78822007-08-17 14:12
我都看到它返回的统计结果了,就是不知道表名是什么,我知道这个表3肯定是不对的.不懂这返回的表名在哪看.
#32
XieLi2007-08-17 14:14

insert into 表1(出口规格,数量) select a.出口规格,a.數量
from (Select 出口规格, sum(isnull(數量,0)) as 數量 from 轧硬卷 group by 出口规格 ) a

這樣寫吧

[此贴子已经被作者于2007-8-17 14:14:44编辑过]

#33
roy78822007-08-17 14:21
服务器: 消息 207,级别 16,状态 3,行 2
列名 '数量' 无效。
#34
XieLi2007-08-17 14:24

你是复制过去的吧,我打的数量是繁体的,你应该打简体,改一下吧.

#35
roy78822007-08-17 14:24
真的真很麻烦你了,我都不好意思了.
declare @max int
declare @id varchar
declare cur_rows cursor local for select 出口规格,count(*) from 轧硬卷 group by 出口规格 having count(*) > 1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
select @max = @max -1
set rowcount @max
insert into 表1 values(@id,@max,)
delete from 轧硬卷 where 出口规格 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0

这个方法可以统计,也可以插入,就是插入到表1中,那列中(规格)的内容全是"0",不知道哪错了.
#36
roy78822007-08-17 14:25
我全改了,还是这个提示.
#37
XieLi2007-08-17 14:33

把你创建的那两个表的SQL语句发过来吧.
我来试一下哦
我也忘得差不多了.

#38
roy78822007-08-17 14:35

主表(轧硬卷)我是从access中导入的,表1,我是利用管理工具建立的.

#39
roy78822007-08-17 14:36
你可真是好耐心哦,真是太麻烦你了.
#40
XieLi2007-08-17 14:40

你的结果不是要把主表的统计结果插入到表1里面去吗,
上面用游标做的太麻烦了吧.
而且你那个 delete from 轧硬卷 where 出口规格 = @id 为什么要删除啊


你的主表里面有"数量"这个字段吗.

#41
songyuyu2007-08-17 14:44
精神不错
#42
roy78822007-08-17 14:47
我的主表没有数量这个字段.
#43
XieLi2007-08-17 14:47
以下是引用songyuyu在2007-8-17 14:44:49的发言:
精神不错

没办法,不会得学啊

#44
roy78822007-08-17 14:48
我一定要学会,虽然我笨,但我一定要搞明白.
#45
roy78822007-08-17 14:50
有楼上这位姐姐帮新人,真是榜样中的榜样啊,您受累了.
#46
XieLi2007-08-17 14:52
insert into 表1(出口规格,数量) select a.出口规格,a.id
from (Select 出口规格, count(*) as id from 轧硬卷 group by 出口规格 ) a

再试吧

那你表1里面也没有吧,
如果没有的话,就把那个数量换成你表1里面有的字段吧.
#47
roy78822007-08-17 14:59

成功了,姐姐,真是感激你呀.不过有一点点差错,那就是表1中怎么会有空数据呢? 在表1中的某一记录中,在两个字段(规格,数量)中,出现<NULL>

#48
XieLi2007-08-17 15:03
你是按上面写的吗.
#49
roy78822007-08-17 15:07

是的呀.

#50
XieLi2007-08-17 15:11

那就是你主表统计出来的结果有一条记录是NULL值
要不就是表1里面有一条记录集是NULL值吧.

#51
roy78822007-08-17 15:16
呵呵,不止一条,我去看看先.不过这个应该没有影响的吧?
12