use pubs
go
IF EXISTS (SELECT * FROM sysobjects WHERE name='automobile_sales_detail' and type='U')
drop table automobile_sales_detail
go
IF EXISTS (SELECT * FROM sysobjects WHERE name='auto_cube' and type='V')
drop view auto_cube
go
create table automobile_sales_detail
(
rowid int not null identity ,
model char(6) not null ,
year smallint not null check (year between 1985 and 2000),
color char(5) not null,
units_sold int not null
)
go
-- insert automobile_sales_detail values ('Chevy',1990,'Red',5)
-- insert automobile_sales_detail values ('Chevy',1990,'White',87)
-- insert automobile_sales_detail values ('Chevy',1990,'Blue',62)
insert automobile_sales_detail values ('Chevy',1991,'Red',54)
insert automobile_sales_detail values ('Chevy',1991,'White',95)
-- insert automobile_sales_detail values ('Chevy',1991,'Blue',49)
insert automobile_sales_detail values ('Chevy',1992,'Red',31)
insert automobile_sales_detail values ('Chevy',1992,'White',54)
-- insert automobile_sales_detail values ('Chevy',1992,'Blue',71)
insert automobile_sales_detail values ('Ford',1990,'Red',64)
insert automobile_sales_detail values ('Ford',1990,'White',62)
insert automobile_sales_detail values ('Ford',1990,'Blue',63)
insert automobile_sales_detail values ('Ford',1991,'Red',52)
insert automobile_sales_detail values ('Ford',1991,'White',9)
insert automobile_sales_detail values ('Ford',1991,'Blue',55)
insert automobile_sales_detail values ('Ford',1992,'Red',27)
insert automobile_sales_detail values ('Ford',1992,'White',62)
insert automobile_sales_detail values ('Ford',1992,'Blue',39)
go
select * from automobile_sales_detail
go
select sum(units_sold),model,year,color
from automobile_sales_detail
group by model,year,color
go
select sum(units_sold),model,year,color
from automobile_sales_detail
group by model,year,color with cube
go
select sum(units_sold),model,year,color
from automobile_sales_detail
group by model,year,color with rollup
go
create view auto_cube (units, model, year, color) as
select sum(units_sold),isnull(model,'ALL'),isnull(convert(char(4),year),'ALL'),
isnull(color,'ALL')
from automobile_sales_detail
group by model,year,color with cube
go
select * from auto_cube
go
select * from auto_cube where model='Chevy' and color='ALL'
and year='1993'
go