delphi数据库查询(100分)

  • 主题发起人 主题发起人 changanyang
  • 开始时间 开始时间
C

changanyang

Unregistered / Unconfirmed
GUEST, unregistred user!
在设计查询更新时遇下问题:

更新数据表GZCARD.dbf中GZ字段,数据来源为数据表SalPrint.db中
'实发工资'字段,条件是:GZCARD.CARDNO=SalPrint.卡号,

update gzcard set gz=(select s.实发工资 from salprint s,gzcard g where s.卡号=g.cardno)

错误:‘Single Row subquery produced more than one row’
屡试均未果,原因何在,敬请高手不吝赐教!!!!!!!!!
 
select s.实发工资 from salprint s,gzcard g where s.卡号=g.cardno
返回值超过了一个。
 
把‘=’改成‘in'试试
 
wlq:
该成in肯定错。
 
糟糕
露馅了:)
 
你要加足条件使返回的个数小于等于1。

Sybase & Ms SQL

update gzcard set gz=(select top 1 s.实发工资 from salprint s,gzcard g where s.卡号=g.cardno)

Oracle

update gzcard set gz=(select s.实发工资 from salprint s,gzcard g where s.卡号=g.cardno and rownum<2)

其他数据哭:
再加其他条件。

 
数据哭吧
 
MSSQL:

update gzcard
set gz=s.实发工资
from gzcard ,
(select 卡号,实发工资 from salprint ) s
where gzcard.cardno = s.卡号
 
问题是你必须保证 <font color="red">select s.实发工资 from salprint s,gzcard g where s.卡号=g.cardno</font> 的返回值唯一(加怎样的条件你最有发言权),否则,随便取一返回值对你的应用又有何意义呢!
 
多人接受答案了。
 
我很喜欢大富翁的学习气氛!
 
后退
顶部