有两个表 一个表示顾客信息表 一个是消费表 我想统计消费次数 没有消费过得显示零
有两个表 一个表示顾客信息表 一个是消费表
我想统计消费次数
没有消费过得显示零
select * from t_member
memNo memName
0001 亚昂他
0002 赤字
select * from t_xf
x_memNo x_money
0001 100.0000
最后想得到结果
0001 1
0002 0
问题点数:100、回复次数:4Top
1 楼unsigned(僵哥(发站内消息,请附上链接或问题说明,否则不予回复))回复于 2006-05-04 09:25:24 得分 10
select memNo,isnull((select count(x_memNo) from t_xf where x_memNo=t_member.x_memNo),0) as 消費次數 from t_memberTop
2 楼xeqtr1982(Visual C# .NET)回复于 2006-05-04 09:26:01 得分 78
declare @t table(memNo varchar(10),memName varchar(10))
insert into @t select '0001','亚昂他'
union all select '0002','赤字'
declare @a table(x_memNo varchar(10),x_money money)
insert into @a select '0001',100.0000
select a.memNo,count(b.x_memNo) as [count] from @t a,@a b where a.memNo*=b.x_memNo group by a.memNo
select a.memNo,count(b.x_memNo) as [count] from @t a left join @a b on a.memNo=b.x_memNo group by a.memNoTop
3 楼pjfsoft(庞庞)回复于 2006-05-04 09:26:39 得分 2
你用左连接,或右连接,Top
4 楼wwh999(印钞机V2.0...开发中....)回复于 2006-05-04 09:32:02 得分 10
use pubs
---测试用临时数据---------------------------------------------
declare @Ta table(memNO varchar(10),memName varchar(10))
insert @Ta select '0001','亚昂他'
union all select '0002','赤字'
Declare @Tb table(x_memNo varchar(10),x_money smallmoney)
insert @Tb select '0001',100.0000
select * from @Ta
select * from @Tb
--------------------------------------------------
--完成如上所示查询的Select语句
select A.*,count(B.x_money)
from @Ta A left join @Tb B
on A.memno=B.x_memNo
group by A.memno,A.memname
order by A.memnoTop




