求教一个sql写法

surreal07 2014-04-21 03:00:34
表A 表B
客户 商品 客户 付款
客户A 商品A 客户A 1000
客户A 商品B 客户B 2000
客户A 商品C
客户B 商品A
客户B 商品D
客户C 商品B
客户C 商品C
客户C 商品E

想要得出如下结果:
客户 商品 付款
客户A 商品A 1000
客户A 商品B
客户A 商品C
客户B 商品A 2000
客户B 商品D
客户C 商品B
客户C 商品C
客户C 商品E

求教要如何写?
...全文
58 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Yole 2014-04-21
  • 打赏
  • 举报
回复

select a.客户, a.商品,isnull(b.付款  ,'') as 付款 
from 表A a left join 
(
select x.客户,MIN(x.商品) as 商品,y.付款 from 表A x ,(select 客户,付款 from 表B) y
 where x.客户=y.客户 
 group by x.客户,y.付款
) b on a.客户=b.客户 and a.商品=b.商品

Yole 2014-04-21
  • 打赏
  • 举报
回复
引用 1 楼 wufeng4552 的回复:
思路 1)每个客户给个序号 2)left join 通过客户+序号
真懒~~
水族杰纶 2014-04-21
  • 打赏
  • 举报
回复
思路 1)每个客户给个序号 2)left join 通过客户+序号

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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