求在同一张字据中同时存在的款号

求在同一张单据中同时存在的款号
各位大侠,一直想写个SQL代码来实现下面的想法
求出销售表中同时被顾客买走的两件货品的top 10,

数据表如下:
销售单号      货号   数量
A001            M001    1
A001            M002    2
A001            M003    1
A002            M001    2
A003            M001    1
A004            M001    2
A004            M002    1
A005            M001    2
A005            M003    1
A005            M004    2
A005            M005    1
A006            M002    1
A006            M003    2
A006            M005    1
A007            M003    2
A007            M005    1

想查到如下类似的结果:
M001&M002: 2   因为这两个货号在A001和A004号单中同时出现过,2张单,故结果为2
M001&M003: 2   因为这两个货号在A001和A003号单中同时出现过,2张单,故结果为2
M002&M003: 2   因为这两个货号在A001和A006号单中同时出现过,2张单,故结果为2
M003&M005: 3   因为这两个货号在A005、A006、A007号单中同时出现过,3张单,故结果为3

不知道哪位大侠有方法解决这个问题?
请赐教!不胜感谢!


        
------解决思路----------------------
引用:
Quote: 引用:

你试下,应该可以
SELECT
T1.货号+'&'+T2.货号
,COUNT(1)
FROM 数据表 T1
JOIN 数据表 T2 ON T1.销售单号=T2.销售单号 AND T1.货号<T2.货号
GROUP BY
T1.货号,T2.货号
HAVING
COUNT(1)>1


非常感谢你的回复,我刚才试了一下这个数据和代码查询结果,可以达到我帖子里所说的效果,
但是我帖子里的内容中是随便放进去的一些货号,正常的货号不会是M001、M002、M003、M004、M005之类的编号,
可能是很多种无规则但并不重复的货号,可能是A45OD887、M51BK001、D24TB0090之类的货,这种之类的编号,
可能代码是用那个T1.货号<T2.货号,是不可行的,没有这种规律。



 这个没有影响,哪怕是字符串也可以判断大小T1.货号<T2.货号,而这个是优化连接的作用,确保两个货号不会连接两次