记录,若另一张表也有此图号记录,则同图号的都要显示。
例如: 表A 表B
产品图号 数量 产品图号 数量
B150-01-01 100 B150-01-02 20
B150-01-02 50 B150-01-01 60
B150-01-03 30 B150-01-02 30
B150-01-01 50 B150-01-01 80
希望查询的结果为:产品图号_a 数量_a 产品图号_b 数量_b
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
b150-01-02 50 B150-01-02 20
B150-01-02 50 B150-01-02 30
不知该如何做到,盼各位高物赐教!
41 个解决方案
#1
不会这个问题,题外的问题:不知高物赐教什么意思?
#2
笑死我了
#3
這個問題太難了,我最多只能做到像這樣的結果
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
b150-01-02 50 B150-01-02 20
NULL NULL B150-01-02 30
還是等高手吧。
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
b150-01-02 50 B150-01-02 20
NULL NULL B150-01-02 30
還是等高手吧。
#4
先把B表倒到临时表,再用两个嵌套的CURSOR,应该可以做到.
不过引用按钮同志的话:"好象这么做吃力不讨好"!
不过引用按钮同志的话:"好象这么做吃力不讨好"!
#5
怪表,写个存储过程,用cursor慢慢转吧
#6
to Rewiah(乘长风)
各位高手见谅,一不小心打成了“高物”:)
to N_chow(一劍飄香)
请问要作到你的这样,该怎么写呢?
各位高手见谅,一不小心打成了“高物”:)
to N_chow(一劍飄香)
请问要作到你的这样,该怎么写呢?
#7
你的问题有些古怪,
我们查询出的内容一般都是有实际应用的,
我想不出
B150-01-01 100 B150-01-01 60
B150-01-01 50 B150-01-01 80
代表什么含义
我们查询出的内容一般都是有实际应用的,
我想不出
B150-01-01 100 B150-01-01 60
B150-01-01 50 B150-01-01 80
代表什么含义
#8
你给的例子对吗?
#9
iuri(璇玑) ,
把兩個table按產品及數數排序灌到兩個temp table中,加上IDENTITY做為關鍵字,并以此關鍵字做為關聯條件就能達到我說的那種效果。
把兩個table按產品及數數排序灌到兩個temp table中,加上IDENTITY做為關鍵字,并以此關鍵字做為關聯條件就能達到我說的那種效果。
#10
B150-01-01 100 B150-01-01 80
B150-01-01 50 B150-01-01 60
为什么不显示?
#11
是用户要求这样的,他希望查出任意两个表具有相同图号的记录,而如果这个相同图号在各自的表中本身就存在相同图号的记录,则要把这些相同图号的记录都显示出来,所以就是达到这种结果了,当然象N_chow(一劍飄香)所说的那种结果也可以
#12
insert into temp select * from b where exists ( select * from a where a.=b.)
update temp set temp.= (select distinct a. from a where temp.=a.)
update temp set temp.= (select distinct a. from a where temp.=a.)
#13
我觉得你在设计计算方法时存在问题,我在想,你怎么要这么怪的查询结果呢?我觉得进行一项目工作,最重要的是计算方法。
#14
我感觉这么做是否在欺骗我们的用户,那不是就是为了美观么?本来他就有一个记录但你把他显示成两个,这不是虚夸么?
#15
我的疑问与sky_blue(蓝天)一样,为什么
B150-01-01 100 B150-01-01 80
B150-01-01 50 B150-01-01 60
不需要显示出来?
客户的需求并不明确,可能有多个结果集都能满足要求。
这样的需求不是不能做,只是怀疑这样做出来的结果有多少可用价值!!!
B150-01-01 100 B150-01-01 80
B150-01-01 50 B150-01-01 60
不需要显示出来?
客户的需求并不明确,可能有多个结果集都能满足要求。
这样的需求不是不能做,只是怀疑这样做出来的结果有多少可用价值!!!
#16
to Pipi0714(皮皮0714)
只有一条记录我当然是只要求显示一条,只是当A表有一条而B表有两条时就要显示两条,反之相同,怎么会变成虚夸了.
to icevi(按钮工厂)
为什么说“
B150-01-01 100 B150-01-01 80
B150-01-01 50 B150-01-01 60
不需要显示出来?”
我就是要它们显示出来呀!
to 大家:
客户的需求就如我上面所说的,看大家的回答,好象我的方法是有点不大对劲,可就这种需求,不知大伙能否帮我提供一些其他的方法。谢谢!
只有一条记录我当然是只要求显示一条,只是当A表有一条而B表有两条时就要显示两条,反之相同,怎么会变成虚夸了.
to icevi(按钮工厂)
为什么说“
B150-01-01 100 B150-01-01 80
B150-01-01 50 B150-01-01 60
不需要显示出来?”
我就是要它们显示出来呀!
to 大家:
客户的需求就如我上面所说的,看大家的回答,好象我的方法是有点不大对劲,可就这种需求,不知大伙能否帮我提供一些其他的方法。谢谢!
#17
to liuri(璇玑) :
按道理两个表关联后,结果集中应该有这样几条记录的(只对B150-01-01而言):
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
B150-01-01 100 B150-01-01 80
B150-01-01 50 B150-01-01 60
奇怪的是你写的例子只需要得到其中两条,什么理由?
按道理两个表关联后,结果集中应该有这样几条记录的(只对B150-01-01而言):
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
B150-01-01 100 B150-01-01 80
B150-01-01 50 B150-01-01 60
奇怪的是你写的例子只需要得到其中两条,什么理由?
#18
to icevi(按钮工厂)
本来我作出的东西就是你说的那个结果,其实现在还是保持这个状态,可那天用户使用了之后说这样他就会误认A表中有四条同图号的记录,所以最好只显示两条,可我半天也没搞出来,我是在VFP里用SQL语言,对于SQL才开始接触,我想还是尽量满足用户需求吧,盼多多赐教!
本来我作出的东西就是你说的那个结果,其实现在还是保持这个状态,可那天用户使用了之后说这样他就会误认A表中有四条同图号的记录,所以最好只显示两条,可我半天也没搞出来,我是在VFP里用SQL语言,对于SQL才开始接触,我想还是尽量满足用户需求吧,盼多多赐教!
#19
select distinct a.产品图号 as"产品图号_a",a.数量 as"数量_a",
b.产品图号 as"产品图号_b",b.数量 as"数量_b"
from table1 a join table2 b
on a.产品图号=b.产品图号
(sql server)
b.产品图号 as"产品图号_b",b.数量 as"数量_b"
from table1 a join table2 b
on a.产品图号=b.产品图号
(sql server)
#20
我觉得用户的要求不合理. 说服用户他那么表示有些不伦不类
#21
to lllmby()
你这种写法不能显示多条相同图号的记录。
to sky_blue(蓝天)
我说服不了他:),而且他所需要确实只要两条,这样显示了四条,混淆了分析结果,好象不太好。
你这种写法不能显示多条相同图号的记录。
to sky_blue(蓝天)
我说服不了他:),而且他所需要确实只要两条,这样显示了四条,混淆了分析结果,好象不太好。
#22
还有谁能说说吗?
#23
select a.产品图号,a.数量,b.产品图号,b.数量 from a,b
where a.产品图号=b.产品图号 and a.产品图号 in (select 产品图号 from a order by 产品图号) and b.产品图号 in ( select 产品图号 from b order by 产品图号)
where a.产品图号=b.产品图号 and a.产品图号 in (select 产品图号 from a order by 产品图号) and b.产品图号 in ( select 产品图号 from b order by 产品图号)
#24
写错了:
select a.产品图号,a.数量,b.产品图号,b.数量 from a,b
where a.产品图号=b.产品图号 and a.产品图号 in (select 产品图号 from b order by 产品图号) and b.产品图号 in ( select 产品图号 from a order by 产品图号)
select a.产品图号,a.数量,b.产品图号,b.数量 from a,b
where a.产品图号=b.产品图号 and a.产品图号 in (select 产品图号 from b order by 产品图号) and b.产品图号 in ( select 产品图号 from a order by 产品图号)
#25
to wlk(温水):
在子查询里设置order by 子句,前面要select top n 吧,我把它加上后,运行显示的还是象 icevi(按钮工厂) 她们说的四条记录的那一种.我只要两条的那种。
大家知道的还是帮我写写吧,即使它真的不合理!非常感谢!!!!!!!!!!
今天是新年伊始,祝大家新年幸福!
在子查询里设置order by 子句,前面要select top n 吧,我把它加上后,运行显示的还是象 icevi(按钮工厂) 她们说的四条记录的那一种.我只要两条的那种。
大家知道的还是帮我写写吧,即使它真的不合理!非常感谢!!!!!!!!!!
今天是新年伊始,祝大家新年幸福!
#26
你总结个规律出来吧, 如果左边5条同图号,右边7条同图号你要几条记录?
怎么搭配?
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
b150-01-02 50 B150-01-02 20
B150-01-02 50 B150-01-02 30
我如果做出的结果是
B150-01-01 100 B150-01-01 80
b150-01-01 50 B150-01-01 60
b150-01-02 50 B150-01-02 20
B150-01-02 50 B150-01-02 30
结果是不是合法?
怎么搭配?
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
b150-01-02 50 B150-01-02 20
B150-01-02 50 B150-01-02 30
我如果做出的结果是
B150-01-01 100 B150-01-01 80
b150-01-01 50 B150-01-01 60
b150-01-02 50 B150-01-02 20
B150-01-02 50 B150-01-02 30
结果是不是合法?
#27
to sky_blue(蓝天) :
左边5条同图号,右边7条同图号就要7条,反正是要多的那一种,你做出的那种结果可以,顺序没有关系,能帮我写写语句吗?感谢!
左边5条同图号,右边7条同图号就要7条,反正是要多的那一种,你做出的那种结果可以,顺序没有关系,能帮我写写语句吗?感谢!
#28
让我做只能用游标了.
#29
a表
B150-01-01 100
b150-01-01 50
b150-01-02 50
B150-01-03 50
B150-01-01 90
B150-01-03 60
B150-01-02 70
B 表
B150-01-01 60
B150-01-01 80
B150-01-02 20
B150-01-03 60
B150-01-03 50
B150-01-03 90
結果是什麼樣子?
B150-01-01 100
b150-01-01 50
b150-01-02 50
B150-01-03 50
B150-01-01 90
B150-01-03 60
B150-01-02 70
B 表
B150-01-01 60
B150-01-01 80
B150-01-02 20
B150-01-03 60
B150-01-03 50
B150-01-03 90
結果是什麼樣子?
#30
to sky_blue(蓝天):
请问怎么用游标做呢?
to yinzhen(yinzhen) :
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
B150-01-01 90 NULL NULL
b150-01-02 50 B150-01-02 20
B150-01-02 70 NULL NULL
B150-01-03 50 B150-01-03 60
B150-01-03 60 B150-01-03 50
NULL NULL B150-01-03 90
顺序没有关系!
请问怎么用游标做呢?
to yinzhen(yinzhen) :
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
B150-01-01 90 NULL NULL
b150-01-02 50 B150-01-02 20
B150-01-02 70 NULL NULL
B150-01-03 50 B150-01-03 60
B150-01-03 60 B150-01-03 50
NULL NULL B150-01-03 90
顺序没有关系!
#31
推一下
#32
create table test_a ( a int, b int)
go
create table test_c ( a int, c int)
go
create table tmp ( a int , b int , a1 int, b1 int)
go
drop proc proc_test_1
go
create proc proc_test_1 ( @a int)
as
begin
set nocount on
select identity(int,1,1) as x,a,b into #tmp1 from test_a where a =@a;
select identity(int,1,1) as x,a,c into #tmp2 from test_c where a =@a;
insert into tmp select #tmp1.a ,#tmp1.b ,#tmp2.a ,#tmp2.c from #tmp1 full join #tmp2 on #tmp1.x =#tmp2.x;
set nocount off
end
go
drop proc proc_test_2
go
create proc proc_test_2
as
begin
set nocount on
truncate table tmp
declare @a int
declare cur_x cursor for select distinct a from test_a
open cur_x
fetch cur_x into @a
while @@FETCH_STATUS = 0
begin
execute proc_test_1 @a
fetch cur_x into @a
end
close cur_x
deallocate cur_x
select * from tmp
set nocount off
end
go
go
create table test_c ( a int, c int)
go
create table tmp ( a int , b int , a1 int, b1 int)
go
drop proc proc_test_1
go
create proc proc_test_1 ( @a int)
as
begin
set nocount on
select identity(int,1,1) as x,a,b into #tmp1 from test_a where a =@a;
select identity(int,1,1) as x,a,c into #tmp2 from test_c where a =@a;
insert into tmp select #tmp1.a ,#tmp1.b ,#tmp2.a ,#tmp2.c from #tmp1 full join #tmp2 on #tmp1.x =#tmp2.x;
set nocount off
end
go
drop proc proc_test_2
go
create proc proc_test_2
as
begin
set nocount on
truncate table tmp
declare @a int
declare cur_x cursor for select distinct a from test_a
open cur_x
fetch cur_x into @a
while @@FETCH_STATUS = 0
begin
execute proc_test_1 @a
fetch cur_x into @a
end
close cur_x
deallocate cur_x
select * from tmp
set nocount off
end
go
#33
test_a和test_c相当于你的表A和表B
tmp表是存放你需要结果的表
直接运行proc_test_2就可以得到结果.
a字段是你的图号.试试看行不行
tmp表是存放你需要结果的表
直接运行proc_test_2就可以得到结果.
a字段是你的图号.试试看行不行
#34
还是用vfp的cursor来做吧。
create cursor cursorname…… 然后追加,处理反而简单
create cursor cursorname…… 然后追加,处理反而简单
#35
谢谢sky_blue(蓝天) ,好长哪!!我才学SQL,看样子得慢慢啃!
#36
能满足要求吗? 别忘了加分哦
#37
to sky_blue(蓝天) :
你那里面有些我还看不太懂,正在学习,太菜了:),而且我要转成VFP的,慢慢研究,一定给你加分,大家来者有分哪,
你那里面有些我还看不太懂,正在学习,太菜了:),而且我要转成VFP的,慢慢研究,一定给你加分,大家来者有分哪,
#38
create table #Tmptbl(a varchar(10),b int)
declare @AA varchar(10) ,@AB int ,@BA varchar(10),@BB int
delete from #Tmptbl
insert into #Tmptbl (a,b)
Select a,b from tblBookA order by 1,2
DECLARE cur_Test CURSOR
for Select a,b from tblbook
open cur_Test
fetch next from cur_Test into @AA,@AB
while @@fetch_status=0
Begin
Select @BA=null ,@BB=Null
Select top 1 @BA=a,@BB=b from #Tmptbl where a=@AA
insert into tblBookc(a,b,c,d) values(@AA,@AB,@BA,@BB)
delete #Tmptbl from (Select top 1 a,b from #Tmptbl where a=@AA ) as t1 where t1.a=#tmptbl.a and t1.b=#tmptbl.b
fetch next from cur_Test into @AA,@AB
End
Select * from #Tmptbl
set @AA=null
set @AB=Null
insert into tblBookC (a,b,c,d) Select @AA as a,@AB as b,a as c ,b as d from #tmptbl
close cur_Test
deallocate cur_Test
select a,b ,c,d from tblBookC order by 1,2,3,4
select * from tblbook
Select * from tblBookA
----呵呵,我用的游標,你看行不行?
declare @AA varchar(10) ,@AB int ,@BA varchar(10),@BB int
delete from #Tmptbl
insert into #Tmptbl (a,b)
Select a,b from tblBookA order by 1,2
DECLARE cur_Test CURSOR
for Select a,b from tblbook
open cur_Test
fetch next from cur_Test into @AA,@AB
while @@fetch_status=0
Begin
Select @BA=null ,@BB=Null
Select top 1 @BA=a,@BB=b from #Tmptbl where a=@AA
insert into tblBookc(a,b,c,d) values(@AA,@AB,@BA,@BB)
delete #Tmptbl from (Select top 1 a,b from #Tmptbl where a=@AA ) as t1 where t1.a=#tmptbl.a and t1.b=#tmptbl.b
fetch next from cur_Test into @AA,@AB
End
Select * from #Tmptbl
set @AA=null
set @AB=Null
insert into tblBookC (a,b,c,d) Select @AA as a,@AB as b,a as c ,b as d from #tmptbl
close cur_Test
deallocate cur_Test
select a,b ,c,d from tblBookC order by 1,2,3,4
select * from tblbook
Select * from tblBookA
----呵呵,我用的游標,你看行不行?
#39
难到这个问题用SQL需要这么复杂,唉,这样我真是用VFP还方便些了,主要是我不太懂SQL
#40
稍微改了一下,终于做完了,谢谢大家的帮助,结帐啦:)
#41
select a.th,a.num,b.th,b.num
from A a,B b
where a.th[9]=b.th[9] and a.th[10]=b.th[10];
from A a,B b
where a.th[9]=b.th[9] and a.th[10]=b.th[10];
#1
不会这个问题,题外的问题:不知高物赐教什么意思?
#2
笑死我了
#3
這個問題太難了,我最多只能做到像這樣的結果
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
b150-01-02 50 B150-01-02 20
NULL NULL B150-01-02 30
還是等高手吧。
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
b150-01-02 50 B150-01-02 20
NULL NULL B150-01-02 30
還是等高手吧。
#4
先把B表倒到临时表,再用两个嵌套的CURSOR,应该可以做到.
不过引用按钮同志的话:"好象这么做吃力不讨好"!
不过引用按钮同志的话:"好象这么做吃力不讨好"!
#5
怪表,写个存储过程,用cursor慢慢转吧
#6
to Rewiah(乘长风)
各位高手见谅,一不小心打成了“高物”:)
to N_chow(一劍飄香)
请问要作到你的这样,该怎么写呢?
各位高手见谅,一不小心打成了“高物”:)
to N_chow(一劍飄香)
请问要作到你的这样,该怎么写呢?
#7
你的问题有些古怪,
我们查询出的内容一般都是有实际应用的,
我想不出
B150-01-01 100 B150-01-01 60
B150-01-01 50 B150-01-01 80
代表什么含义
我们查询出的内容一般都是有实际应用的,
我想不出
B150-01-01 100 B150-01-01 60
B150-01-01 50 B150-01-01 80
代表什么含义
#8
你给的例子对吗?
#9
iuri(璇玑) ,
把兩個table按產品及數數排序灌到兩個temp table中,加上IDENTITY做為關鍵字,并以此關鍵字做為關聯條件就能達到我說的那種效果。
把兩個table按產品及數數排序灌到兩個temp table中,加上IDENTITY做為關鍵字,并以此關鍵字做為關聯條件就能達到我說的那種效果。
#10
B150-01-01 100 B150-01-01 80
B150-01-01 50 B150-01-01 60
为什么不显示?
#11
是用户要求这样的,他希望查出任意两个表具有相同图号的记录,而如果这个相同图号在各自的表中本身就存在相同图号的记录,则要把这些相同图号的记录都显示出来,所以就是达到这种结果了,当然象N_chow(一劍飄香)所说的那种结果也可以
#12
insert into temp select * from b where exists ( select * from a where a.=b.)
update temp set temp.= (select distinct a. from a where temp.=a.)
update temp set temp.= (select distinct a. from a where temp.=a.)
#13
我觉得你在设计计算方法时存在问题,我在想,你怎么要这么怪的查询结果呢?我觉得进行一项目工作,最重要的是计算方法。
#14
我感觉这么做是否在欺骗我们的用户,那不是就是为了美观么?本来他就有一个记录但你把他显示成两个,这不是虚夸么?
#15
我的疑问与sky_blue(蓝天)一样,为什么
B150-01-01 100 B150-01-01 80
B150-01-01 50 B150-01-01 60
不需要显示出来?
客户的需求并不明确,可能有多个结果集都能满足要求。
这样的需求不是不能做,只是怀疑这样做出来的结果有多少可用价值!!!
B150-01-01 100 B150-01-01 80
B150-01-01 50 B150-01-01 60
不需要显示出来?
客户的需求并不明确,可能有多个结果集都能满足要求。
这样的需求不是不能做,只是怀疑这样做出来的结果有多少可用价值!!!
#16
to Pipi0714(皮皮0714)
只有一条记录我当然是只要求显示一条,只是当A表有一条而B表有两条时就要显示两条,反之相同,怎么会变成虚夸了.
to icevi(按钮工厂)
为什么说“
B150-01-01 100 B150-01-01 80
B150-01-01 50 B150-01-01 60
不需要显示出来?”
我就是要它们显示出来呀!
to 大家:
客户的需求就如我上面所说的,看大家的回答,好象我的方法是有点不大对劲,可就这种需求,不知大伙能否帮我提供一些其他的方法。谢谢!
只有一条记录我当然是只要求显示一条,只是当A表有一条而B表有两条时就要显示两条,反之相同,怎么会变成虚夸了.
to icevi(按钮工厂)
为什么说“
B150-01-01 100 B150-01-01 80
B150-01-01 50 B150-01-01 60
不需要显示出来?”
我就是要它们显示出来呀!
to 大家:
客户的需求就如我上面所说的,看大家的回答,好象我的方法是有点不大对劲,可就这种需求,不知大伙能否帮我提供一些其他的方法。谢谢!
#17
to liuri(璇玑) :
按道理两个表关联后,结果集中应该有这样几条记录的(只对B150-01-01而言):
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
B150-01-01 100 B150-01-01 80
B150-01-01 50 B150-01-01 60
奇怪的是你写的例子只需要得到其中两条,什么理由?
按道理两个表关联后,结果集中应该有这样几条记录的(只对B150-01-01而言):
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
B150-01-01 100 B150-01-01 80
B150-01-01 50 B150-01-01 60
奇怪的是你写的例子只需要得到其中两条,什么理由?
#18
to icevi(按钮工厂)
本来我作出的东西就是你说的那个结果,其实现在还是保持这个状态,可那天用户使用了之后说这样他就会误认A表中有四条同图号的记录,所以最好只显示两条,可我半天也没搞出来,我是在VFP里用SQL语言,对于SQL才开始接触,我想还是尽量满足用户需求吧,盼多多赐教!
本来我作出的东西就是你说的那个结果,其实现在还是保持这个状态,可那天用户使用了之后说这样他就会误认A表中有四条同图号的记录,所以最好只显示两条,可我半天也没搞出来,我是在VFP里用SQL语言,对于SQL才开始接触,我想还是尽量满足用户需求吧,盼多多赐教!
#19
select distinct a.产品图号 as"产品图号_a",a.数量 as"数量_a",
b.产品图号 as"产品图号_b",b.数量 as"数量_b"
from table1 a join table2 b
on a.产品图号=b.产品图号
(sql server)
b.产品图号 as"产品图号_b",b.数量 as"数量_b"
from table1 a join table2 b
on a.产品图号=b.产品图号
(sql server)
#20
我觉得用户的要求不合理. 说服用户他那么表示有些不伦不类
#21
to lllmby()
你这种写法不能显示多条相同图号的记录。
to sky_blue(蓝天)
我说服不了他:),而且他所需要确实只要两条,这样显示了四条,混淆了分析结果,好象不太好。
你这种写法不能显示多条相同图号的记录。
to sky_blue(蓝天)
我说服不了他:),而且他所需要确实只要两条,这样显示了四条,混淆了分析结果,好象不太好。
#22
还有谁能说说吗?
#23
select a.产品图号,a.数量,b.产品图号,b.数量 from a,b
where a.产品图号=b.产品图号 and a.产品图号 in (select 产品图号 from a order by 产品图号) and b.产品图号 in ( select 产品图号 from b order by 产品图号)
where a.产品图号=b.产品图号 and a.产品图号 in (select 产品图号 from a order by 产品图号) and b.产品图号 in ( select 产品图号 from b order by 产品图号)
#24
写错了:
select a.产品图号,a.数量,b.产品图号,b.数量 from a,b
where a.产品图号=b.产品图号 and a.产品图号 in (select 产品图号 from b order by 产品图号) and b.产品图号 in ( select 产品图号 from a order by 产品图号)
select a.产品图号,a.数量,b.产品图号,b.数量 from a,b
where a.产品图号=b.产品图号 and a.产品图号 in (select 产品图号 from b order by 产品图号) and b.产品图号 in ( select 产品图号 from a order by 产品图号)
#25
to wlk(温水):
在子查询里设置order by 子句,前面要select top n 吧,我把它加上后,运行显示的还是象 icevi(按钮工厂) 她们说的四条记录的那一种.我只要两条的那种。
大家知道的还是帮我写写吧,即使它真的不合理!非常感谢!!!!!!!!!!
今天是新年伊始,祝大家新年幸福!
在子查询里设置order by 子句,前面要select top n 吧,我把它加上后,运行显示的还是象 icevi(按钮工厂) 她们说的四条记录的那一种.我只要两条的那种。
大家知道的还是帮我写写吧,即使它真的不合理!非常感谢!!!!!!!!!!
今天是新年伊始,祝大家新年幸福!
#26
你总结个规律出来吧, 如果左边5条同图号,右边7条同图号你要几条记录?
怎么搭配?
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
b150-01-02 50 B150-01-02 20
B150-01-02 50 B150-01-02 30
我如果做出的结果是
B150-01-01 100 B150-01-01 80
b150-01-01 50 B150-01-01 60
b150-01-02 50 B150-01-02 20
B150-01-02 50 B150-01-02 30
结果是不是合法?
怎么搭配?
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
b150-01-02 50 B150-01-02 20
B150-01-02 50 B150-01-02 30
我如果做出的结果是
B150-01-01 100 B150-01-01 80
b150-01-01 50 B150-01-01 60
b150-01-02 50 B150-01-02 20
B150-01-02 50 B150-01-02 30
结果是不是合法?
#27
to sky_blue(蓝天) :
左边5条同图号,右边7条同图号就要7条,反正是要多的那一种,你做出的那种结果可以,顺序没有关系,能帮我写写语句吗?感谢!
左边5条同图号,右边7条同图号就要7条,反正是要多的那一种,你做出的那种结果可以,顺序没有关系,能帮我写写语句吗?感谢!
#28
让我做只能用游标了.
#29
a表
B150-01-01 100
b150-01-01 50
b150-01-02 50
B150-01-03 50
B150-01-01 90
B150-01-03 60
B150-01-02 70
B 表
B150-01-01 60
B150-01-01 80
B150-01-02 20
B150-01-03 60
B150-01-03 50
B150-01-03 90
結果是什麼樣子?
B150-01-01 100
b150-01-01 50
b150-01-02 50
B150-01-03 50
B150-01-01 90
B150-01-03 60
B150-01-02 70
B 表
B150-01-01 60
B150-01-01 80
B150-01-02 20
B150-01-03 60
B150-01-03 50
B150-01-03 90
結果是什麼樣子?
#30
to sky_blue(蓝天):
请问怎么用游标做呢?
to yinzhen(yinzhen) :
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
B150-01-01 90 NULL NULL
b150-01-02 50 B150-01-02 20
B150-01-02 70 NULL NULL
B150-01-03 50 B150-01-03 60
B150-01-03 60 B150-01-03 50
NULL NULL B150-01-03 90
顺序没有关系!
请问怎么用游标做呢?
to yinzhen(yinzhen) :
B150-01-01 100 B150-01-01 60
b150-01-01 50 B150-01-01 80
B150-01-01 90 NULL NULL
b150-01-02 50 B150-01-02 20
B150-01-02 70 NULL NULL
B150-01-03 50 B150-01-03 60
B150-01-03 60 B150-01-03 50
NULL NULL B150-01-03 90
顺序没有关系!
#31
推一下
#32
create table test_a ( a int, b int)
go
create table test_c ( a int, c int)
go
create table tmp ( a int , b int , a1 int, b1 int)
go
drop proc proc_test_1
go
create proc proc_test_1 ( @a int)
as
begin
set nocount on
select identity(int,1,1) as x,a,b into #tmp1 from test_a where a =@a;
select identity(int,1,1) as x,a,c into #tmp2 from test_c where a =@a;
insert into tmp select #tmp1.a ,#tmp1.b ,#tmp2.a ,#tmp2.c from #tmp1 full join #tmp2 on #tmp1.x =#tmp2.x;
set nocount off
end
go
drop proc proc_test_2
go
create proc proc_test_2
as
begin
set nocount on
truncate table tmp
declare @a int
declare cur_x cursor for select distinct a from test_a
open cur_x
fetch cur_x into @a
while @@FETCH_STATUS = 0
begin
execute proc_test_1 @a
fetch cur_x into @a
end
close cur_x
deallocate cur_x
select * from tmp
set nocount off
end
go
go
create table test_c ( a int, c int)
go
create table tmp ( a int , b int , a1 int, b1 int)
go
drop proc proc_test_1
go
create proc proc_test_1 ( @a int)
as
begin
set nocount on
select identity(int,1,1) as x,a,b into #tmp1 from test_a where a =@a;
select identity(int,1,1) as x,a,c into #tmp2 from test_c where a =@a;
insert into tmp select #tmp1.a ,#tmp1.b ,#tmp2.a ,#tmp2.c from #tmp1 full join #tmp2 on #tmp1.x =#tmp2.x;
set nocount off
end
go
drop proc proc_test_2
go
create proc proc_test_2
as
begin
set nocount on
truncate table tmp
declare @a int
declare cur_x cursor for select distinct a from test_a
open cur_x
fetch cur_x into @a
while @@FETCH_STATUS = 0
begin
execute proc_test_1 @a
fetch cur_x into @a
end
close cur_x
deallocate cur_x
select * from tmp
set nocount off
end
go
#33
test_a和test_c相当于你的表A和表B
tmp表是存放你需要结果的表
直接运行proc_test_2就可以得到结果.
a字段是你的图号.试试看行不行
tmp表是存放你需要结果的表
直接运行proc_test_2就可以得到结果.
a字段是你的图号.试试看行不行
#34
还是用vfp的cursor来做吧。
create cursor cursorname…… 然后追加,处理反而简单
create cursor cursorname…… 然后追加,处理反而简单
#35
谢谢sky_blue(蓝天) ,好长哪!!我才学SQL,看样子得慢慢啃!
#36
能满足要求吗? 别忘了加分哦
#37
to sky_blue(蓝天) :
你那里面有些我还看不太懂,正在学习,太菜了:),而且我要转成VFP的,慢慢研究,一定给你加分,大家来者有分哪,
你那里面有些我还看不太懂,正在学习,太菜了:),而且我要转成VFP的,慢慢研究,一定给你加分,大家来者有分哪,
#38
create table #Tmptbl(a varchar(10),b int)
declare @AA varchar(10) ,@AB int ,@BA varchar(10),@BB int
delete from #Tmptbl
insert into #Tmptbl (a,b)
Select a,b from tblBookA order by 1,2
DECLARE cur_Test CURSOR
for Select a,b from tblbook
open cur_Test
fetch next from cur_Test into @AA,@AB
while @@fetch_status=0
Begin
Select @BA=null ,@BB=Null
Select top 1 @BA=a,@BB=b from #Tmptbl where a=@AA
insert into tblBookc(a,b,c,d) values(@AA,@AB,@BA,@BB)
delete #Tmptbl from (Select top 1 a,b from #Tmptbl where a=@AA ) as t1 where t1.a=#tmptbl.a and t1.b=#tmptbl.b
fetch next from cur_Test into @AA,@AB
End
Select * from #Tmptbl
set @AA=null
set @AB=Null
insert into tblBookC (a,b,c,d) Select @AA as a,@AB as b,a as c ,b as d from #tmptbl
close cur_Test
deallocate cur_Test
select a,b ,c,d from tblBookC order by 1,2,3,4
select * from tblbook
Select * from tblBookA
----呵呵,我用的游標,你看行不行?
declare @AA varchar(10) ,@AB int ,@BA varchar(10),@BB int
delete from #Tmptbl
insert into #Tmptbl (a,b)
Select a,b from tblBookA order by 1,2
DECLARE cur_Test CURSOR
for Select a,b from tblbook
open cur_Test
fetch next from cur_Test into @AA,@AB
while @@fetch_status=0
Begin
Select @BA=null ,@BB=Null
Select top 1 @BA=a,@BB=b from #Tmptbl where a=@AA
insert into tblBookc(a,b,c,d) values(@AA,@AB,@BA,@BB)
delete #Tmptbl from (Select top 1 a,b from #Tmptbl where a=@AA ) as t1 where t1.a=#tmptbl.a and t1.b=#tmptbl.b
fetch next from cur_Test into @AA,@AB
End
Select * from #Tmptbl
set @AA=null
set @AB=Null
insert into tblBookC (a,b,c,d) Select @AA as a,@AB as b,a as c ,b as d from #tmptbl
close cur_Test
deallocate cur_Test
select a,b ,c,d from tblBookC order by 1,2,3,4
select * from tblbook
Select * from tblBookA
----呵呵,我用的游標,你看行不行?
#39
难到这个问题用SQL需要这么复杂,唉,这样我真是用VFP还方便些了,主要是我不太懂SQL
#40
稍微改了一下,终于做完了,谢谢大家的帮助,结帐啦:)
#41
select a.th,a.num,b.th,b.num
from A a,B b
where a.th[9]=b.th[9] and a.th[10]=b.th[10];
from A a,B b
where a.th[9]=b.th[9] and a.th[10]=b.th[10];