欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

求教,多个结果集一对多sql写法,该怎么解决

更新时间: 2014-01-05 02:23:10 责任编辑: Author_N1

 

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

其中让我纠结不已的是,结果集一对多,再来个一对多情况下,我如何将最里面的那层筛选出一条来;
新手求教,可能描述不好,见谅,在线等。
--参考方法--
有200个行员,那么我需要的结果是100张卡对应的100个行员;

取 100个行员有什么标准,ID最大,日期最近?
--参考方法--
一个账户对应的多个行员中,取比重=100的,如果有多个,随便取一个:
表中必须有唯一标识的字段

贴建表及插入记录的SQL,及要求结果出来看看
--参考方法--
假设C表 行员号 唯一
select * from c a where not exists(select 1 from c where a.账户号=账户号
and a.行员号<行员号)
--参考方法--
仔细看看,A是C的别名
--参考方法--
select * 
 from a 
 inner join b on c.kh=b.kh  
 left join c c1 on b.zhdh=c1.zhdh 
where not exists(select 1 from c where c1.账户号=账户号
and c1.行员号<行员号)
--参考方法--
   建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
   参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
   
   1. 你的 create table xxx .. 语句
   2. 你的 insert into xxx ... 语句
   3. 结果是什么样,(并给以简单的算法描述)

   
   这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
--参考方法--
试试这个概念:
select a.cardno, 
(select b.accno from b where a.cardno=b.cardno fetch first row only),
(select c.colno from b,c where a.cardno=b.cardno and b.accno = c.accno fetch first row only)
from a

--参考方法--
LZ貌似在写模型~
--参考方法--
distinct order by fetch first one rows only 这些都是处理一对多的好方法
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:23:10
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/9158/
本文WWW.DOC100.NET DOC100.NET版权所有。