早上,所有的,迭代存储在一组日期
我正在寻找解决以下问题的有效方法: (请注意,我已经简化和更改的实际问题;然而,不应该反思那我基本上找)
,如果我想,以确定由特定公司拥有的每个Store
交易,按日期分组的数量的结果,我已经运行下面的查询:
Select
date_of_transaction
,store
,COUNT(*)
from transactions t1
group by date_of_transaction,store
order by date_of_transaction
但是,这种查询是不够的,因为它不返回stores
和dates
如果交易的数量等于“0”
举例来说,如果没有通过store A
上1/Oct/2012
COMMITED,该行将任何交易从我的结果集中丢失。
这就是为什么,我想在过去的一年365天内强制执行,然后为每个Date
显示每个Store
。 换句话说,如果该公司拥有3家店,我需要3个纪录为今年的每一天,即使交易数量为“0”:
Date Store Number
1/1/2012 A 1
1/1/2012 B 0
1/1/2012 C 3
2/1/2012 A 1
2/1/2012 B 2
2/1/2012 C 0
3/1/2012 A 1
3/1/2012 B 0
3/1/2012 C 0
我有一个日历表,我有过去'联盟'的商店和迫使他们,但它必须是一个更好的方式来做到这一点。
问候 基里尔
我无法识别日历和商店表之间的任何关系。 –
那又如何?上面的查询不依赖于这两者之间的关系。它执行笛卡尔连接(以便您可以获取日历表中每个记录的Stores表中的每条记录)。它仅依赖于“事务”表和“商店”表之间以及“事务”表和“日历”表之间的关系。 – Dan
没关系,我已经加入了它们之间的isnull(vw.Store_Start_Date,'19000101')和ISNULL(vw.Store_End_Date,GETDATE())之间的cal_daydate。谢谢你的帮助。 –