-- create tables
-- drop table #categories
create table #categories
(categoryname varchar(20),
productname varchar(20)
)
-- drop table #sales
create table #sales
(Store int,
SaleDate date,
productname varchar(20),
qty int,
price decimal(4,2)
)
-- create categories
insert into #categories
(categoryname,productname)
values
('fruit','apple')
insert into #categories
(categoryname,productname)
values
('fruit','orange')
insert into #categories
(categoryname,productname)
values
('vegetable','carrot')
insert into #categories
(categoryname,productname)
values
('vegetable','cabbage')
-- generate sales data for a store
insert into #sales
(Store,SaleDate,productname,qty,price)
values
(1,cast('2020-01-01' as date),'carrot',20,.10)
insert into #sales
(Store,SaleDate,productname,qty,price)
values
(1,cast('2020-01-01' as date),'carrot',10,.10)
insert into #sales
(Store,SaleDate,productname,qty,price)
values
(1,cast('2020-01-01' as date),'apple',10,.30)
insert into #sales
(Store,SaleDate,productname,qty,price)
values
(1,cast('2020-01-01' as date),'orange',10,.35)
insert into #sales
(Store,SaleDate,productname,qty,price)
values
(1,cast('2020-01-01' as date),'orange',15,.35)
-- generate sales for another store
insert into #sales
(Store,SaleDate,productname,qty,price)
values
(2,cast('2020-01-01' as date),'cabbage',8,1.32)
insert into #sales
(Store,SaleDate,productname,qty,price)
values
(2,cast('2020-01-01' as date),'orange',20,.35)
-- store #1, a different day
insert into #sales
(Store,SaleDate,productname,qty,price)
values
(1,cast('2020-01-02' as date),'apple',8,.30)
insert into #sales
(Store,SaleDate,productname,qty,price)
values
(1,cast('2020-01-02' as date),'apple',20,.30)
-- Look at what got created
select * from #categories
select * from #sales
-- group by attempt
select s.Store,
s.SaleDate,
c.CategoryName,
sum(s.qty) as Qty,
sum(s.price) as Amt
from #sales s
inner join #categories c
on c.productname = s.productname
group by s.Store,
s.SaleDate,
c.CategoryName
order by Store,SaleDate, categoryname desc
-- partition over attempt
select s.Store,
s.SaleDate,
c.CategoryName,
sum(s.qty) over(partition by c.categoryname) as Qty,
sum(s.price) over(partition by c.categoryname) as Amt
from #sales s
inner join #categories c
on c.productname = s.productname
order by Store,SaleDate,CategoryName desc
Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.
”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.
Our community of experts have been thoroughly vetted for their expertise and industry experience.
The Most Valuable Expert award recognizes technology experts who passionately share their knowledge with the community, demonstrate the core values of this platform, and go the extra mile in all aspects of their contributions. This award is based off of nominations by EE users and experts. Multiple MVEs may be awarded each year.
The Distinguished Expert awards are presented to the top veteran and rookie experts to earn the most points in the top 50 topics.