The result will contain every combination of accountcode, month and year hence this technique is good for generating dimension tables.
-- create 3 temporary tables for the purpose of this demonstration if object_id('tempdb..#accountcodes') is not null begin drop table #accountcodes end create table #accountcodes (companycode char(10)) insert into #accountcodes (companycode) values ('008') insert into #accountcodes (companycode) values ('009') insert into #accountcodes (companycode) values ('010') insert into #accountcodes (companycode) values ('011') if object_id('tempdb..#years') is not null begin drop table #years end create table #years (yearvalue int) insert into #years (yearvalue) values (2008) insert into #years (yearvalue) values (2007) insert into #years (yearvalue) values (2006) insert into #years (yearvalue) values (2005) insert into #years (yearvalue) values (2004) insert into #years (yearvalue) values (2003) if object_id('tempdb..#months') is not null begin drop table #months end create table #months (monthvalue int) insert into #months (monthvalue) values (1) insert into #months (monthvalue) values (2) insert into #months (monthvalue) values (3) insert into #months (monthvalue) values (4) insert into #months (monthvalue) values (5) insert into #months (monthvalue) values (6) insert into #months (monthvalue) values (7) insert into #months (monthvalue) values (8) insert into #months (monthvalue) values (9) insert into #months (monthvalue) values (10) insert into #months (monthvalue) values (11) insert into #months (monthvalue) values (12) -- finally, perform the cross joins to get the final results. -- there should be (4 x 6 x 12) 288 rows returned. select * from #accountcodes cross join #years cross join #months
No comments:
Post a Comment