求一SQL语句。高分相送

qinguangjun123 2004-11-24 04:35:02
表:
字段 AA BB CC
数据 A1 B1 C1
A2 B2 C2

B表
字段 AA DD
数据 A1 D1
A1 D2
A2 D3
根据A表的AA求结果
字段 AA DD
数据 A1 D1等
A2 D3
即当B表中的数据为多条时,就用一个数据+“等”表示。谢谢大哥们,来帮忙。
不要用CASE WHEN 我的不支持此语法!
...全文
107 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tw_cshn 2004-11-24
  • 打赏
  • 举报
回复
select a.aa,a.dd||Decode(Count(*),1,' ','等')
from a,b
where a.aa=b.aa
group by a.aa,b.dd
oracle888 2004-11-24
  • 打赏
  • 举报
回复
SQL> select * from ta;

AA BB CC
---------- ---------- ----------
a1 b1 c1
a2 b2 c2

SQL> select * from tb;

AA DD
---------- ----------
a1 d1
a1 d2
a2 ee
oracle888 2004-11-24
  • 打赏
  • 举报
回复
已写入文件 afiedt.buf

1 select max(ta.aa) AA,max(tb.dd)||
2 decode(max((select count(tb1.aa) from tb tb1 where tb1.aa=ta.aa group by tb1.aa)),1,' ','等') D
3 from ta,tb
4 where tb.aa=ta.aa
5* group by ta.aa
SQL> /

AA DD
---------- ------------
a1 d2等
a2 ee
oracle888 2004-11-24
  • 打赏
  • 举报
回复
select max(ta.aa) AA,max(tb.dd)||
decode(max((select count(tb1.aa) from tb tb1 where tb1.aa=ta.aa group by tb1.aa)),1,' ','等') D
from ta,tb
where tb.aa=ta.aa
group by ta.aa
/
zmgowin 2004-11-24
  • 打赏
  • 举报
回复
17:05:05 SQL> select * from b;

AA DD
-- --
A1 D1
A1 D2
A2 D3

已用时间: 00: 00: 00.00
17:05:13 SQL> select aa,dd from
17:05:24 2 (select aa,decode((select count(*) from b d where d.aa=c.aa),1,dd,
dd||'等') dd from b c) a
17:05:24 3 where rowid=(select min(rowid) from b where a.aa=b.aa);

AA DD
-- ----
A1 D1等
A2 D3

已用时间: 00: 00: 00.16
qiaozhiwei 2004-11-24
  • 打赏
  • 举报
回复
写个过程吧

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧