| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 443 人关注过本帖
标题:新手求助2个问题,谢谢各位!
只看楼主 加入收藏
Jamesxql
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-1-11
收藏
 问题点数:0 回复次数:2 
新手求助2个问题,谢谢各位!

先做一下假设,有2个表:Bakdly,GoodsStocks。其中2个表中都包含字段Ptypeid,Ktypeid。另外Bakdly表中喊包含字段Vchtype

先有2个问题想请教大家:
1:对Bakdly.Vchtype = N(N为一常数)的所有行进行逐行分析,如第一行Bakdly.Ptypeid = M(M为一字段值),那么在表GoodsStocks中查询所有GoodsStocks.Ptypeid = M的行,如果存在某一行令GoodsStocks.Ktypeid = Bakdly.Ktypeid,那么继续对表Bakdly进行遍历;如果无法找到上述行,则对表GoodsStocks进行Insert操作,插入一行使GoodsStocks.Ptypeid = Bakdly.Ptypeid AND GoodsStocks.Ktypeid = Bakdly.Ptypeid
现在我想问的是:对于以上这个遍历,如果要实现它,那么在SQL中应该如何写相应的循环?

2:如果希望做一个操作:Select Top N Ptypeid From GoodsStocks Where Ktypeid = M(N,M都为常量),并将这N行数据依次插入到字段Bakdly.Ptypeid中去,那么这个循环应该怎样写?

有点基础,希望大家不要见笑哈!!!谢谢各位

2007-01-11 17:53
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 
都不需要循环

如果存在某一行令GoodsStocks.Ktypeid = Bakdly.Ktypeid and GoodsStocks.Ptypeid = Bakdly.Ptypeid
插入一行使GoodsStocks.Ptypeid = Bakdly.Ptypeid AND GoodsStocks.Ktypeid = Bakdly.Ktypeid
1. insert into goodsstocks(ptypeid,ktypeid)
select ptypeid,ktypeid from bakdly
where convert(varchar,ptypeid)+'0'+ convert(varchar,ktypeid) not in
(select kpid = convert(varchar,a.ptypeid)+'0'+ convert(varchar,a.ktypeid) from bakdly a
join goodsstocks b on a.ktypeid = b.ktypeid)

如果不是你打错字 确实是 插入一行使GoodsStocks.Ptypeid = Bakdly.Ptypeid AND GoodsStocks.Ktypeid = Bakdly.Ptypeid
1. insert into goodsstocks(ptypeid,ktypeid)
select ptypeid,ptypeid from bakdly
where ktypeid not in
(select ktypeid from bakdly a
join goodsstocks b on a.ktypeid = b.ktypeid)



2. Insert bakdly (ptypeid)
select top N ptypeid from GoodsStocks Where Ktypeid = M

[此贴子已经被作者于2007-1-11 18:11:16编辑过]


2007-01-11 18:10
Jamesxql
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-1-11
收藏
得分:0 
是打错字了哈,谢谢楼上~~
2007-01-11 18:55
快速回复:新手求助2个问题,谢谢各位!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018681 second(s), 7 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved