Неверное имя объекта "#subodh" - PullRequest
0 голосов
/ 15 декабря 2011
Alter Procedure sp_Member(
@comcode int = 0,
@SubComCode int = 0
)
as
begin
set nocount on
If @comcode= 0
begin
select
(select sum(amount)    
    from tbcoudet 
    where memcode=tbm.memcode and expyear=(select max(expyear) from tbexpyear) 
    and exists(select itemcode 
            from tbitem 
            where comcode=@comcode and 
                  SubComCode=@SubComCode and
                  itemcode=tbcoudet.itemcode
            )
    group by memcode,expyear
)'TurnOver'
, *  into #subodh from tbmember tbm where can_flag='N' 
end
If @SubComCode= 0
begin
Insert into #subodh
select
(select sum(amount)    
    from tbcoudet 
    where memcode=tbm.memcode and expyear=(select max(expyear) from tbexpyear) 
    and exists(select itemcode 
            from tbitem 
            where comcode=@comcode and 
                  itemcode=tbcoudet.itemcode
            )
    group by memcode,expyear
)'TurnOver'
, *  from tbmember tbm where can_flag='N'
end

select top 10 * from #subodh where TurnOver is not null order by TurnOver desc

end 

Моя проблема в том, что когда я собираюсь выполнить EXEC sp_Member @comcode='1',@subcomcode='1' ИЛИ select top 10 * from #subodh where TurnOver is not null order by TurnOver эти запросы, я получаю сообщение об ошибке "Неверное имя объекта" #subodh "." пожалуйста, скажите мне, почему я получаю эту ошибку и как я могу ее исправить ... пожалуйста

1 Ответ

0 голосов
/ 15 декабря 2011

Эта ошибка возникает из-за того, что таблица может не быть создана с оператором insert into.Это происходит потому, что select может не дать никаких результатов.Таким образом, компилятор не разрешает этот код, потому что в будущем он может выдать ошибку.

Вместо того, чтобы сначала insert into, create table #subodhdrop в конце) и у вас не возникнет этой проблемы.

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