SELECT FROM stored procedure

Выборка из хранимой процедуры, первоначально условий не было, понадобились, сгородили огород, можно было использовать временную таблицу или табличную переменную.
Было

declare @d1 datetime = convert(datetime, '{$p->dateFromQ}', 104), @d2 datetime = convert(datetime, eomonth(convert(datetime, '{$p->dateToQ}', 104))) + 1.0/1.000001;
exec {$this->db_our}perfReport @d1, @d2;
Стало

select * from 
openquery([LOOPBACK], '
declare @d1 datetime = convert(datetime, ''{$p->dateFromQ}'', 104), @d2 datetime = convert(datetime, eomonth(convert(datetime, ''{$p->dateToQ}'', 104))) + 1.0/1.000001;
exec {$this->db_our}perfReport @d1, @d2
with result sets (( 
	price decimal(25,3), selectedCnt int ,selectedSum decimal(38,3)
	,smoot1 int ,smoot2 int ,approvedInPmes int ,selected int, inOther int
	,id int ,h1_id int ,h2_id int ,h3_id int
	,h1_name varchar(128) ,h2_name varchar(128) ,h3_name varchar(128)
	,h3_extId int ,documentID int ,dName varchar(128)
	,entity varchar(255) ,createdD datetime ,createdDH varchar(30) ,docDateH varchar(30)
	,TIName varchar(4000) ,vr float ,cnt int ,measEquiId int
	,pfId int ,unitPriceId int ,intEntityType int ,hashedName varchar(128)
	,originalName varchar(256) ,moot int ,moot1 int ,moot2 int
	,etName varchar(128) ,ekName varchar(255)
	,ekId int ,serialNumber varchar(64)
	,workNameF varchar(258) ,priceN decimal(14,3)
	,kindId2 int ,isPriced int
))')
 where docDateH between convert(datetime, '{$p->dateFrom}', 104) and convert(datetime, '{$p->dateTo}', 104) + 1.0/1.000001

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *