求一条很简单的SQL语句,高手帮帮忙急
A表
店号 店名 注册日期 注册卷数 注册数字
1111 1店 2007-01-01 60 21000
1112 2店 2007-03-02 30 10500
B表
店号 店名 发放日期
1111 1店 2007-02-08
1111 1店 2007-01-09
1111 1店 2006-08-09
1112 2店 2007-03-02
1113 3店 2007-03-08
查询出的格式
店号 店名 注册日期 注册数字 计数器 差额
1111 1店 2007-01-01 21000 2 20998
1112 2店 2007-03-02 10500 1 10499
我的语句如下
select max(printpapercount.shopid) as shopid,max(printpapercount.shopname) as shopname,
max(printpapercount.regpaperdate) as regpaperdate,max(printpapercount.regpapercount2) as regpapercount2,
count(*) as printpapercount
from printpapercount,ticketinfo
where printpapercount.shopid=ticketinfo.shopid and ticketinfo.providedate> printpapercount.regpaperdate
and ticketinfo.providedate <CONVERT(datetime,left(getdate()-1,10)+ ' 23:59:59.000 ')
group by printpapercount.shopid
不加这个日期条件的话 A表有几条记录就显示几条记录 如果加了日期条件的话怎么都显示一条记录
最终目的
就是说A表是个 登记统计时间和数字的 B表是个发放记录表的 我要达到的是B表根据A表登记的时间做为条件count(*) 然后显示出来就可以了
谢谢高手帮我改下好吗?
------解决方案--------------------select 店号,
店名,
注册日期,
注册数字,
(select count(*) from B表 where B表.店号=A表.店号 and B表.发放日期> =A表.发放日期) as 计数器,
注册数字 - (select count(*) from B表 where B表.店号=A表.店号 and B表.发放日期> =A表.发放日期) as 差额
from A表
------解决方案----------------------建議將Count(*)改為Count(店号)
select 店号,
店名,
注册日期,
注册数字,
(select count(店号) from B表 where B表.店号=A表.店号 and B表.发放日期> =A表.发放日期) as 计数器,
注册数字 - (select count(店号) from B表 where B表.店号=A表.店号 and B表.发放日期> =A表.发放日期) as 差额
from A表