求助一条sql语句的写法

tomorrower 2009-02-25 01:12:59
有一个张表:(公司客户交易表),有公司甲乙丙丁,客户甲乙丙丁,可以相互交易,现在希望得到
公司 | 客户 | 交易额
公司甲| 客户乙 | 3000
公司甲| 客户丙 |0
公司丁| 客户甲 |200
公司乙| 客户丁|100
**** ***** ****
省略

现在希望得到:

跟公司甲乙丙丁均发生过交易(交易额>0)的客户,如何编写这个sql语句?
...全文
109 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
magicbluestone 2009-02-25
  • 打赏
  • 举报
回复
有一个张表:(公司客户交易表),有公司甲乙丙丁,客户甲乙丙丁,可以相互交易,现在希望得到
公司 | 客户 | 交易额
公司甲| 客户乙 | 3000
公司甲| 客户丙 |0
公司丁| 客户甲 |200
公司乙| 客户丁|100
**** ***** ****
省略

现在希望得到:

跟公司甲乙丙丁均发生过交易(交易额>0)的客户,如何编写这个sql语句?
select com,cum,number,comnum from (
select com,cum,number,count(distinct(com)) over (partiton by cum) comnum from table)
where comnum >=4 and number>0
sunyuzhou 2009-02-25
  • 打赏
  • 举报
回复
having 是group by的条件,count求和 distinct没有重复值,就是说客户对应的公司(公司不重复)共有两个,由于只有两个公司,所以可以说这个客户和所有的公司都有关系;
oraclelogan 2009-02-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 tomorrower 的回复:]
引用 5 楼 sunyuzhou 的回复:
having 是group by的条件,count求和 distinct没有重复值,就是说客户对应的公司(公司不重复)共有两个,由于只有两个公司,所以可以说这个客户和所有的公司都有关系;


count求和 distinct没有重复值

可惜access数据库不支持
[/Quote]

啊,竟然是access数据库,晕倒!呵呵,还以为是oracle数据库呢!
tomorrower 2009-02-25
  • 打赏
  • 举报
回复
5* having count(distinct gs)=2

请问这句话是什么意思?有什么作用?
阿三 2009-02-25
  • 打赏
  • 举报
回复
SQL> select * from gskhjyb;

GS KH JYE
---------- ---------- ----------
丁 丙 3000
甲 丙 0
甲 乙 3000

SQL> ed
已写入 file afiedt.buf

1 select kh
2 from gskhjyb
3 where gs in ('甲','丁') and jye>0
4 group by kh
5* having count(distinct gs)=2
SQL> /

KH
----------


这样查是否符合你的要求
tomorrower 2009-02-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sunyuzhou 的回复:]
having 是group by的条件,count求和 distinct没有重复值,就是说客户对应的公司(公司不重复)共有两个,由于只有两个公司,所以可以说这个客户和所有的公司都有关系;
[/Quote]

count求和 distinct没有重复值

可惜access数据库不支持
tomorrower 2009-02-25
  • 打赏
  • 举报
回复
表结构为:
公司客户交易表: gskhjyb (gs,kh,jye)
客户表: khb (kh)
公司表: gsb (gs)

wangsong145 2009-02-25
  • 打赏
  • 举报
回复
楼主还是把表结构给出来吧,不然没法写啊

17,377

社区成员

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

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