从报表的两个表中获取计数和列值

我需要从共用一个列是两个表中选择计数clientId和组的总数由clientIds给定的日期和dateadded两个表中的列是日期时间格式。

例如,结果应该显示:

ClientId     Total1 Total2  
aaaa           1      2
bbbbb          43     45
ccccc          123    355

等等2011-03-25

我现在拥有的是

select 
   (select clientid,count(*) as total1 from TFeed where dateadded = getdate() 
    group by clientId),
   (select clientId, count(*) as total2 from WFeed where dateadded = getdate() 
    group by clientid)

这当然是错误的。 错误:当子查询未与EXISTS一起引入时,只能在选择列表中指定一个表达式。 此外,为了考虑,这些表格非常大 - 超过300万条记录并不断增长。 任何帮助赞赏

编辑:

关于时间 - 如果dateadded ='2011-03-25 12:00:34 0011',我该如何比较获取dateadded的时间= @getdate()并选择今天的所有记录。

虽然我的查询仍在运行 - 关闭主题问题...因为这是一个报告查询,我希望定期运行它来更新总计,以便当客户端打开网页或点击报告时,它将传递总计而不必运行查询并从数据库中选择最后的总数。 那么我需要有一个不同的查询或每隔一小时左右运行一次。


你很近。 在进行聚合之前,您想要将两个表连接在一起

select 
    clientid,
    sum(case when t.clientid is not null then 1 else 0 end ) as total1 
    sum(case when w.clientid is not null then 1 else 0 end ) as total1 
    from TFeed t FULL OUTER JOIN WFeed w 
    where w.dateadded = getdate() or t.dateadded = getdate()

这可能不完全是你要做的,但这是一般的想法。 这也处理了特定日期的某个表中没有数据的情况。


select tf.clientid,
       SUM( case when tf.dateadded = getdate() then 1 else 0 end) as Total1,
       SUM( case when wf.dateadded = getdate() then 1 else 0 end) as Total2
from tfeed tf full outer join wfeed wf on tf.clientid = wf.clientid
group by tf.clientid

尝试一下这样的事情。

select clientid, sum(total1) as total1, sum(total2) as total2
from
(select clientid,count(*) as total1, 0  as total2 
from TFeed 
where dateadded = @someDate
group by clientId
UNION
select clientId, 0  as total1, count(*) as total2 
from WFeed 
where dateadded = @someDate
group by clientid)
group by clientid
链接地址: http://www.djcxy.com/p/86225.html

上一篇: get count and column value from two tables for a report

下一篇: Select distinct list of all elements x of all records in sql xquery