Предлагам ви да разделите съхранената процедура на две процедури, всяка от които съответно връща отделна таблица и извикваните към различни работни листове.
Има различни начини за връщане на данни в Excel с помощта на SQL
Ето един мой любим от код от Джошуа (не е нужно да използвате параметрите):
-
Изберете раздела Данни на лентата на Excel, след което в групата Получаване на външни данни изберете падащото меню „От други източници“. След това изберете „От Microsoft Query“
-
В изскачащото поле „Избор на източник на данни“ изберете вашия SQL сървър, след което натиснете OK.
-
Затворете изскачащия прозорец „Добавяне на таблици“, ако е необходимо.
-
Щракнете върху бутона "SQL" или изберете Изглед> SQL, за да отворите изскачащия редактор на SQL.
-
Въведете следния синтаксис:{CALL myDatabaseName.dbo.myStoredProc (?, ?, ?)}
Например:{CALL northwind.dbo.spGetMaxCost (?, ?, ?)}
Не забравяйте да включите криволичещите скоби около оператора за повикване. Всеки въпросителен знак (?) показва параметър. Ако вашата съхранена процедура изисква повече или по-малко параметри, добавете или извадете въпросителни знаци, ако е необходимо.
-
Натиснете бутона OK. Трябва да се появи поле за въпроси с надпис „SQL заявката не може да бъде представена графично, продължавайте все пак?“, просто натиснете бутона OK.
-
Сега ще бъдете помолени за примерни параметри за всеки въпросителен знак, който сте включили по-горе. Въведете валидни стойности на параметрите за данните, които заявявате.
-
След като въведете последния параметър, трябва да получите някои резултати обратно в Microsoft Query. Ако изглеждат добре, затворете Microsoft Query.
-
Сега трябва да гледате изскачащ прозорец „Импортиране на данни“. Щракнете върху бутона Properties, който ще изведе изскачащия прозорец "Connection Properties".
-
Изберете раздела Дефиниция, след което изберете бутона Параметри. Сега трябва да видите изскачащ прозорец „Параметри“, където можете да свържете параметъра към конкретна клетка.
-
Изберете Получаване на стойността от следната клетка и след това се свържете с подходяща клетка в Excel, която ще съдържа вашия параметър, като щракнете върху малкото поле със стрелката.
-
Ако искате данните да се опресняват всеки път, когато промените клетката, съдържаща параметъра, поставете отметка в квадратчето „Обновяване автоматично при промяна на стойността на клетката“
-
Продължете както по-горе за другите параметри. Когато приключите, щракнете върху OK, за да се върнете към изскачащия прозорец Свойства на връзката. Щракнете върху OK, за да се върнете към изскачащия прозорец за импортиране на данни, и щракнете върху OK отново.
-
Вече трябва да имате някои данни направо от вашата съхранена процедура.
В крайна сметка ще получите информация за връзката, подобна на:
Информация за връзката
И ако използвате параметри от лист, тогава, за моя пример,