Sql server 2008 要计算SQL Server 2008中的差异记录计数吗

Sql server 2008 要计算SQL Server 2008中的差异记录计数吗,sql-server-2008,count,record,subtraction,Sql Server 2008,Count,Record,Subtraction,我试图确定记录计数之间的差异,我只有两种不同的记录类型。我想按日期显示每个记录类型和组的记录计数: select CONVERT(VARCHAR(5), aa.RUN_DATE, 1) AS 'RUN_Date', case when aa.SOURCE = 2 then 'RD' else 'JD' end as 'Source', COUNT(*) as 'Item_Count' from

我试图确定记录计数之间的差异,我只有两种不同的记录类型。我想按日期显示每个记录类型和组的记录计数:

select 
    CONVERT(VARCHAR(5), aa.RUN_DATE, 1) AS 'RUN_Date',
    case 
       when aa.SOURCE = 2 
          then 'RD' 
          else 'JD' 
    end as 'Source',
    COUNT(*) as 'Item_Count'
from 
    clientdb.inventory aa with(nolock)
inner join 
    clientdb.record_type bb with(nolock) on aa.REC_TYPE = bb.OBJECT_ID
where
    aa.RUN_DATE > '2016-04-15'
    and aa.CLIENT_NUMBER = 65432
group by
    case 
       when aa.SOURCE = 2 
          then 'RD' 
          else 'JD' 
    end, CONVERT(VARCHAR(5), aa.RUN_DATE, 1) 
order by
    CONVERT(VARCHAR(5), aa.RUN_DATE, 1) desc,
    case 
       when aa.SOURCE = 2 
          then 'RD' 
          else 'JD' 
    end
我希望结果以类似的方式显示:


使用SQLServer2008数据库。有人能帮忙吗?

这似乎是一种你可以使用的情况

这是假设您可以将您的数据汇总为类似于我在下面创建的结构

RUN_Date   JD          RD          Difference
---------- ----------- ----------- -----------
2016-04-29 163         263         100
2016-04-28 178         271         93
2016-04-27 95          271         176
在本例中,以下脚本将创建该表

create table BaseSummary
(
    RUN_Date date,
    JD int,
    RD int,
    Difference int
)

insert into BaseSummary values ('04/29/2016', 163, 263, 100)
insert into BaseSummary values ('04/28/2016', 178, 271, 93)
insert into BaseSummary values ('04/27/2016', 95, 271, 176)  
下面是使用UNPIVOT获取您要查找的内容的SQL语句

select RUN_Date, left(Source, 16) as Source, Item_Count
from 
(
    select RUN_Date, JD, RD, Difference
    from BaseSummary
) p
UNPIVOT
(
    Item_Count for Source in 
        (JD, RD, Difference)
) as unpvt
order by RUN_Date desc
这就产生了

RUN_Date   Source           Item_Count
---------- ---------------- -----------
2016-04-29 JD               163
2016-04-29 RD               263
2016-04-29 Difference       100
2016-04-28 JD               178
2016-04-28 RD               271
2016-04-28 Difference       93
2016-04-27 JD               95
2016-04-27 RD               271
2016-04-27 Difference       176
因此,您可以汇总数据,并将其插入到表或临时表中,然后用表替换“BaseSummary”。我没有对此进行测试,但我看不出有任何理由不能用汇总查询替换别名为“p”的查询

希望这有帮助

Noel

Set-不建议在任何地方都使用它-恰恰相反!