0 0

新手求教DB2,sql结果集多个一对多问题20

交易流水表(a):主要字段:卡号;
卡帐对应表(b):卡号,账户号;(一卡可以多个账户)
对象关系表(c):账户号,行员号;(一个账户可以多个行员)
我现在是想要,通过A表拿到C表的行员(一卡对应多个账户的时候,我只要其中一个账户,且这个账户在对象关系表中有行员)
例如:“交易流水(a)”有100张卡,100张卡在“卡帐对应表(b)”有140个账户,140个账户在“对象关系表(c)”有200个行员,那么我需要的结果是100张卡对应的100个行员;
2013年3月04日 16:49

2个答案 按时间排序 按投票排序

0 0

这个需求貌似有点不合理,
比如,卡号A 有账号 001,002
     卡号B 有账号 101,102
      001 有行员号  X1,X2,X3
      002 有行员号  X1,X3,X4
      101 有行员号  X1,X3
      102 有行员号  X4
按你的要求就有可能查询出有重复的行员号

2013年3月05日 10:35
0 0

未测试。谨做参考。


SELECT *
FROM a,
  (SELECT row_number() AS numB , 卡号,账户号 FROM b) bb,
  (SELECT row_number() AS numC, 账户号,行员号 FROM c ) cc
WHERE a.卡号 = bb.卡号
AND bb.账户号 = cc.账户号
AND numB   = 1
AND numC   = 1

2013年3月04日 18:51

相关推荐

Global site tag (gtag.js) - Google Analytics