Неверное имя объекта при выполнении процедуры обновления таблицы - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть следующее

use salesdb
go

create procedure monthlysales as
begin

create table MyTable( SalesFactID integer identity(1,1),
ReportingMth date, 
customer_id varchar(50),
ReferenceID navarchar(50), 
LstOrderDte date);

Insert into MyTable

select 
businessMth,
saleid as referenceid,
null as lastorderte

from sourcetble;

update MyTable
set lastorderte = sls.max_orderdte
from ( select
st.customer_id,
ftmytbl.ReportingMth,
max(salesdate) as max_orderdte

from sales_table st

left outer join mytable ftmytbl
on ftmytbl.customerid=st.customerRef

where saleste<=ftmytbl.ReportingMth 

group by customer_id 

)up

where mytable.customer_id=up.customer_id
and mytable.reportingmth=up.ReportingMth;

end;

execute monthlysales 

ошибка неверного имени объекта mytable.reportingmth

Как я могу это исправить? Пожалуйста помогите.

1 Ответ

0 голосов
/ 20 февраля 2020

Поиск этого текста. Где это находится? Он находится в предложении where самого внешнего оператора select. В соединении вы использовали производную таблицу с именем up (которая является дерьмовым именем, кстати, как и многие из ваших имен). Внешний запрос знает только 2 таблицы - up и MyTable (или это mytable? BE CONSISTENT!) И может ссылаться только на столбцы в этих таблицах.

Чтобы исправить эту конкретную проблему, измените это:

and mytable.reportingmth=up.ReportingMth;

на

and MyTable.ReportingMth = up.ReportingMth;

Но это решит только одну проблему. Кажется, есть и другие, которые еще не найдены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...