Запрос сводной таблицы из таблиц SQL выдает ошибку - иногда - PullRequest
0 голосов
/ 11 февраля 2011

Запуск Excel 2010 с PowerPivot 10.50.1747.0, доступ к SQL Server 2005 с пакетом обновления 2 (SP2).

Я изменяю сводную таблицу Excel.Он получает свои данные из таблицы SQL через запрос.Я делаю изменения в запрос в разделе «Свойства таблицы».Когда я ввожу свой новый запрос и нажимаю кнопку «Проверить», я получаю «Оператор SQL действителен».Если я нажимаю кнопку «Дизайн» и в появившемся окне нажимаю кнопку «Выполнить» («!»), Я получаю правильные данные.НО, когда я выхожу из окна «Дизайн» и нажимаю кнопку «Сохранить», я получаю сообщение об ошибке:

==============
The refresh operation failed because the source data base or the table does 
not exist, or because you do not have access to the source

More Details:
OLE DB or ODBC error.
An error occurred while processing the 'Query' table.
The operation has been cancelled.
==============

Что здесь происходит?(Я использую переменную таблицы - будет ли это причиной проблемы?) Спасибо за любую помощь.

Вот код:

declare @WCsWithDups TABLE(  
 WOStatus Char(1) not null,  
 WOCreated DateTime not null,  
 WorkOrderNo VarChar(15) not null,  
 WorkCenterID VarChar(6) not null,  
 ItemClassID VarChar(12) not null,  
 StockItem Char(1) not null,  
 FirstChar Char(1) not null,  
 MaxWODays SmallInt not null  
)  

insert into @WCsWithDups(WOStatus, WOCreated, WorkOrderNo, WorkCenterID, ItemClassID, StockItem, FirstChar, MaxWODays)  
select DISTINCT  
case 
 when wocompleted is null then 'O' 
 else 'C' end as WOstatus, 
wocreated, 
WorkOrderNo, 
workcenterid, 
itemclassid, 
case when timinventory.minstockqty>0 then 'Y' 
 when timinventory.maxstockqty>0 then 'Y' 
 when timinventory.safetystockqty>0 then 'Y' 
 when timinventory.stdordqty>0 then 'Y' 
 else 'N' end as stockitem, 
left(itemproduced,1) as FirstChar,
(select  max(datediff(day,wocreated,transdate)+1) from vdvMT b where TR1.workorderno=b.workorderno) as maxwodays

from vdvMT as TR1
 left join tInv on TR1.itemkeyproduced=tInv.itemkey and TR1.whsekey=tInv.whsekey
where type='L' and wocreated>=(getdate()-365) and (workcenterid = 'Shed' or workcenterid = 'OP') 

delete from @WCsWithDups
where WorkOrderNo in (
 select WorkOrderNo from @WCsWithDups group by WorkOrderNo having count(WorkOrderNo) = 1);

select distinct WOStatus, WOCreated, WorkOrderNo, 'Shed+OP' as WorkCenterID, ItemClassID, StockItem, FirstChar, MaxWODays 
from @WCsWithDups

1 Ответ

1 голос
/ 07 апреля 2011

Сканировал оставшиеся без ответа вопросы. Похоже, что ОП получил ответ на этот вопрос в другом месте:

http://social.msdn.microsoft.com/Forums/en-US/sqlkjpowerpivotforexcel/thread/d7c7bc25-d140-4957-9b66-9963d1c655b1

Задать параметр «Без счета» перед вставкой и Отключить счетчик после вставки

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

...