| Начало » Использование СУБД » Firebird, HQbird, InterBase » select на удаленной базе (execute statement - как правильно приготовить) Переход к форуму:
	| 
		
			| select на удаленной базе [сообщение #5701] | Tue, 12 November 2024 20:34  |  
			| 
				
				
					|  GrigoryFomin Сообщений: 91
 Зарегистрирован: April 2023
 | Member |  |  |  
	| Доброго дня. Помогите, плз с проблемой.
 Необходимо выполнить SELECT на другой базе и получить результат.
 Пробую сделать так:
 
 но выдает ошибку, что неожиданный конец команды. селект выдает множество строк при этом.
execute block as
declare variable poss varchar(1000);
declare variable vall numeric (16,0);
begin
for execute statement
'select row_number() over (order by sum(pricetowdisc) desc) || '' место - '' || badgename || '' [Б+'' || caname||'']'' as poss, sum(pricetowdisc) as total from opers o
join contragents c on caid=opcaidown
join emps e on e.empid=o.empid
where opdate between dateadd(day,-30,current_timestamp) and current_timestamp and optype in (100,101,102,150,151,152)
group by caname,badgename
order by total desc'
WITH AUTONOMOUS TRANSACTION
ON EXTERNAL 'd:\basa\DBSERVER.FDB'
into :poss, :vall
do
begin
end
Пните в нужном направлении, плз
 |  
	|  |  |  
	|  |  
	|  |  
	|  |  
	|  |  
	|  |  
	| 
		
			| Re: select на удаленной базе [сообщение #5712 является ответом на сообщение #5706] | Wed, 13 November 2024 20:10   |  
			| 
				
				
					|  sim_84 Сообщений: 355
 Зарегистрирован: June 2022
 | Senior Member |  |  |  
	| Открой для себя альтернативные кавычки для строковых литералов и сразу станет легче 
 
 
execute block as
  declare variable poss varchar(1000);
  declare variable vall numeric (16,0);
begin
  for
    execute statement
Q'{
select
  row_number() over (order by sum(pricetowdisc) desc) || ' место - ' || badgename || ' [Б+' || caname|| ']' as poss,
  sum(pricetowdisc) as total
from
  opers o
  join contragents c on caid=opcaidown
  join emps e on e.empid=o.empid
where opdate between dateadd(day, -30,current_timestamp)
  and current_timestamp and optype in (100,101,102,150,151,152)
group by caname, badgename
order by total desc
}'
    WITH AUTONOMOUS TRANSACTION
    ON EXTERNAL 'd:\basa\DBSERVER.FDB'
    into :poss, :vall
  do
  begin
  end
end
 |  
	|  |  |  
	| 
		
			| Re: select на удаленной базе [сообщение #5713 является ответом на сообщение #5712] | Thu, 14 November 2024 05:29   |  
			| 
				
				
					|  fraks Сообщений: 152
 Зарегистрирован: June 2022
 Географическое положение: Новосибирск
 | Senior Member |  |  |  
	| sim_84 писал(а) Thu, 14 November 2024 00:10 Открой для себя альтернативные кавычки для строковых литералов и сразу станет легчеА это с какой версии появилось (альтернативные кавычки)?
 
 
execute block as
  declare variable poss varchar(1000);
  declare variable vall numeric (16,0);
begin
  for
    execute statement
Q'{
select
 
 [Обновления: Thu, 14 November 2024 05:30] Известить модератора |  
	|  |  |  
	|  | 
 
 
 Текущее время: Fri Oct 31 16:58:35 GMT+3 2025 
 Общее время, затраченное на создание страницы: 0.00796 секунд |