Akina, Составил запросы, но вот как объединить все это с 5 и 6 пунктом - ума не приложу. Копаю в сторону отдельной функции для решения этого вопроса, но если вы можете направить в сторону более оптимального решения, то я был бы благодарен.
create function FullMonthsSeparation
(
@DateA datetime,
@DateB datetime
)
returns int
as
begin
declare @Result int
declare @DateX datetime
declare @DateY datetime
if(@DateA < @DateB)
begin
set @DateX = @DateA
set @DateY = @DateB
end
else
begin
set @DateX = @DateB
set @DateY = @DateA
end
set @Result = (
select
case
when datepart(day, @DateX) > datepart(day, @DateY)
then datediff(month, @DateX, @DateY) - 1
else datediff(month, @DateX, @DateY)
end)
return @Result
end
go
select
Production.ProductCategory.Name as 'Категория',
Production.ProductSubcategory.Name 'Подкатегория',
Production.Product.ProductID as 'ID продукта',
concat(
case
when len(replace(Production.Product.Name, ' ', '%20%')) > 30
then left(replace(Production.Product.Name, ' ', '%20%'), 30) + '...'
else replace(Production.Product.Name, ' ', '%20%')
end, ';',
Production.Product.ProductNumber, ';',
isnull(Production.Product.Color, 'NULL'), ';',
isnull(Production.Product.Size, 'NULL'))
as 'Продукт',
isnull(
dbo.FullMonthsSeparation(Production.Product.SellEndDate, Production.Product.SellStartDate),
datediff(month, Production.Product.SellStartDate, getdate()))
as 'Время с начала продаж (месяцы)'
from Production.ProductCategory, Production.ProductSubcategory, Production.Product
where Production.ProductSubcategory.ProductCategoryID = Production.ProductCategory.ProductCategoryID;
select Production.ProductSubcategory.Name as 'Название подкатегории',avg(Production.Product.StandardCost) as 'Средняя цена в подкатегории'
from Production.Product, Production.ProductSubcategory
where Product.ProductSubcategoryID = ProductSubcategory.ProductSubcategoryID
group by Production.ProductSubcategory.Name;
select Production.ProductCategory.Name as 'Название категории', avg(Production.Product.StandardCost) as 'Средняя цена в категории'
from Production.Product, Production.ProductSubcategory, Production.ProductCategory
where Production.ProductSubcategory.ProductCategoryID = Production.ProductCategory.ProductCategoryID
group by Production.ProductCategory.Name;
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.