невозможно получить сумму (столбец) с левым соединением идентификаторов строк - PullRequest
1 голос
/ 11 апреля 2019

У меня есть временная таблица, которая выглядит как показано ниже.

ID : type : stat
----------------
1  : t1   :  0
2  : t2   :  0
3  : t3   :  1

Я хочу создать другую временную таблицу, похожую на

ID : type : stat : qty
----------------------
1  : t1   :  0   : 10
2  : t2   :  0   : 20
3  : t3   :  1   : 30

однако кол-во происходит из другой таблицы, которая имеет несколько строк. ех

ID : junk : junk : qty
----------------------
1  : t1   :  0   :  5
1  : t2   :  0   :  5
2  : t3   :  1   : 15
3  : t1   :  0   :  5
3  : t2   :  0   : 20
3  : t3   :  1   : 10

вот мой текущий запрос для получения первой таблицы.


select table1.ID, table1.type, table1.stat  
into #tempTable1
from table1
where start_date >= dateADD(wk, DATEDIFF(wk, 0, getdate()), -1)  --sunday
and start_date <= DATEADD(wk, DATEDIFF(wk,0,GETDATE()), 5) --saturday 

вот моя текущая попытка запроса объединить их, которая не работает, но я не знаю, как ее решить.

select #tempTable1.id, #tempTable1.type, #tempTable1.stat, sum(table2.value) as 'qty' 
into #tempTable1
from #tempTable2
left join table2
on #tempTable1.id = table2.id

это дает мне ошибку

" Column '#temptable.type' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. "

Я пытался использовать группу, используя ID, тип, статистику, а также.

пожалуйста, игнорируйте строчные и прописные буквы, это правильно в моем реальном sql запросе.

Спасибо за помощь.

1 Ответ

1 голос
/ 11 апреля 2019

Я не понимаю, почему вы используете временные таблицы.JOIN и GROUP BY должны делать то, что вы хотите:

select t1.ID, t1.type, t1.stat, sum(t2.qty) as qty
from table1 t1 left join
     table2 t2
     on t1.id = t2.id
where t1.start_date >= dateadd(week, datediff(week, 0, getdate()), -1) and --sunday
      t1.start_date <= dateadd(week, datediff(week, 0, getdate()), 5) --saturday 
group by t1.ID, t1.type, t1.stat;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...