从报表的两个表中获取计数和列值
我需要从共用一个列是两个表中选择计数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