回 帖 发 新 帖 刷新版面

主题:请问这个SQL应该怎么写

有这么两个表
cust_tbl
cust_id    title    e_first_name    e_last_name    address1    .
0    MR    Martin    Ma    .    
1    MR    Kirs    Cheung    .    
2    MR    Ricky    Chan    .    
3    MR    Tom    Kwan    .    
4    MR    Corporate Default    Corporate Default    .    
5    MRS    Mary     Mok    .    
.    .    .    .    .    

acc_grp_cust_tbl
acc_group    Cust_id1    Cust_id2    Cust_id3    Cust_id4
1400    0    1    2    
1500    3    4        
1600    5            
.    .    .    .    .
.    .    .    .    .


如何根据上面两个表使用SQL显示出这样一个表
ACC_GROUP    PAYEENAMES
1400    Ma Martin/Cheung Kris/Chan Ricky
1500    Kwan Tom/Corporate Default Corporate Default
1600    Mok Mary
.    .
.    .

回复列表 (共24个回复)

沙发

看不出有什么联系

板凳

?????????????你是什么题啊?? 可以说清楚点啊

3 楼

你是不是把题目搞错了

4 楼

几个表格有点没对齐,就是根据第二个表的 Cust_id1    Cust_id2    Cust_id3    Cust_id4值找出第一个表中匹配的cust_id的行,然后把这个行的姓和名组合起来

5 楼

DECODE 是oracle的特有函数,别的数据库自己改成case when
select acc_group,MAX(decode(id,'1',name))||MAX(decode(id,'2','/'||name))||MAX(decode(id,'3','/'||name))||MAX(decode(id,'4','/'||name))
FROM (
select '1' id,acc_group,Cust_id1 Cust_id,e_last_name||' '||e_first_name name
 from acc_grp_cust_tbl a,cust_tbl b where a.cust_id1 = b.cust_id
union all    
select '2' id,acc_group,Cust_id2,e_last_name||' '||e_first_name name
 from acc_grp_cust_tbl a,cust_tbl b where a.cust_id2 = b.cust_id
union all  
select '3' id,acc_group,Cust_id3,e_last_name||' '||e_first_name name
 from acc_grp_cust_tbl a,cust_tbl b where a.cust_id3 = b.cust_id
union all  
select '4' id,acc_group,Cust_id4,e_last_name||' '||e_first_name name
 from acc_grp_cust_tbl a,cust_tbl b where a.cust_id4 = b.cust_id) a
 GROUP BY acc_group

6 楼

查的出就怪了`!!

7 楼

[quote]查的出就怪了`!![/quote]
查不出才怪了

8 楼

结论:两张表无关联 你表建的有问题

9 楼

[quote]结论:两张表无关联 你表建的有问题[/quote]
结论,这个论坛有业内人士么?都是学生?一张横表,一个纵表都不会关联,菜就一个字

10 楼

[quote][quote]结论:两张表无关联 你表建的有问题[/quote]
结论,这个论坛有业内人士么?都是学生?一张横表,一个纵表都不会关联,菜就一个字[/quote]

工作时间不会比你短多少 看你讲话就知道没有什么水平,也没有什么素质.

我做的修改在下页.

我来回复

您尚未登录,请登录后再回复。点此登录或注册