У меня есть следующий код.
Select t.Salesperson_Invoiced,
Sum(Case When month(t.TranDate) = Month(getdate()) Then t.NetNet_Revenue_Func End) MTD_REV,
Sum(Case When month(t.TranDate) = Month(getdate()) Then t.GM_Func_Net End) MTD_GM,
SUM (Case When t.Year = Year(getdate()) Then t.NetNet_Revenue_Func End) YTD_REV,
SUM (Case When t.Year = Year(getdate()) Then t.GM_Func_Net End) YTD_GM
From Sales_History t
Where t.PG1 = 'Lighting'
And t.Office = 'AU'
And t.Year = Year(getdate())
Group By t.Salesperson_Invoiced
Могу ли я добавить следующее
SELECT Salesperson_1,sum(Value_Func) as BO_AUD
FROM Datawarehouse.dbo.Open_Orders
where Office = 'AU' and PG1 = 'Lighting'
group by Salesperson_1
Salesperson_1 и Salesperson_Invoiced - это поле, к которому можно присоединиться :)
так что я могу сделать так, чтобы это выглядело так?
Salesperson_Invoiced | NetNet_Revenue_Func MTD | NetNet_Revenue_Func YTD | GM_Func_Net MTD | GM_Func_Net YTD | BO_AUD |
---|---|---|---|---|---|
James | 500 | 100 | |||
John | 600 | 200 | |||
Peter | 700 | 300 | |||
Harry | 800 | 400 | |||
Potter | 900 | 1 |
Каждый раз, когда я пытаюсь присоединиться к таблицам, данные сходят с ума и ошибаются!
Примите вашу помощь!
Вот пример выводимых данных, которые я получаю:
Таблица первая:
Salesperson_Invoiced | NetNet_Revenue_Func MTD | NetNet_Revenue_Func YTD | GM_Func_Net MTD | GM_Func_Net YTD |
---|---|---|---|---|
James | 500 | 1000 | 250 | 500 |
Harry | 600 | 1200 | 300 | 600 |
Potter | 700 | 1400 | 350 | 700 |
Таблица 2
Salesperson_Invoiced | BO_AUD |
---|---|
James | 500000 |
Harry | 600000 |
Potter | 700000 |
Вот чего я пытаюсь достичь:
Salesperson_Invoiced | NetNet_Revenue_Func MTD | NetNet_Revenue_Func YTD | GM_Func_Net MTD | GM_Func_Net YTD | BO_AUD |
---|---|---|---|---|---|
James | 500 | 1000 | 250 | 500 | 500000 |
Harry | 600 | 1200 | 300 | 600 | 600000 |
Potter | 700 | 1400 | 350 | 700 | 700000 |
Код, который я пытался использовать, был
Select distinct t.Salesperson_Invoiced,
Sum(Case When month(t.TranDate) = Month(getdate()) Then t.NetNet_Revenue_Func End) MTD_REV,
Sum(Case When month(t.TranDate) = Month(getdate()) Then t.GM_Func_Net End) MTD_GM,
SUM (Case When t.Year = Year(getdate()) Then t.NetNet_Revenue_Func End) YTD_REV,
SUM (Case When t.Year = Year(getdate()) Then t.GM_Func_Net End) YTD_GM,
sum(Value_Func) as BO_AUD
From Sales_History t
inner join Open_Orders on
t.Salesperson_Invoiced = Open_Orders.Salesperson_1
Where t.PG1 = 'Lighting'
And t.Office = 'AU'
And t.Year = Year(getdate())
Group By t.Salesperson_Invoiced,Salesperson_1
Но когда я пытаюсь использовать это A) Реальные данные одного из MTD идут от 6586.00 до 111962.00 B) BO_AUD для того же человека выдувается до 10907652.210, где должно быть 119374.310
GROUP BY
по всему набору, удалите предложение группы, чтобы просмотреть все строки, над которыми он работает. Здесь вам могут помочь подзапрос, перекрестное применение и / или оконные функции. - person Chris Schaller   schedule 23.03.2021