首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一条很简单的SQL语句,高手帮帮忙急解决思路

2012-02-14 
求一条很简单的SQL语句,高手帮帮忙急A表店号店名注册日期注册卷数注册数字11111店2007-01-01602100011122

求一条很简单的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表

热点排行