помогите написать агента

Cleric-Lviv

Lotus team
03.01.2008
600
0
#1
всем привет.
мои знания в sql очень малы... но стоит задача написать агента которий будет делать следующее.

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

итак имеем
таблица "А" здесь мало записей.
2 - колонки
1. - имя подразделения(toboname)
2. - номер подразделения(toboid)
таблица "Б"
1. - номер подразделения(toboid)
2. - id клиента(customerid)
3. - имя клиента(customername)
4. - статус клиента (1/0)(status)

итак берем с первой таблици первое toboid и пробуем найти:
select * from "Б" where toboid = (здесь би передать ето значение как?)
и записиваем ето в таблицу "В"
select * from "Б" where toboid = () and status = 0
select * from "Б" where toboid = () and status = 1
и так далее

помогите плиз,или ткните носом где можно увидеть пример.....
 

Cleric-Lviv

Lotus team
03.01.2008
600
0
#3
sax_ol

результат получаем из запросов потом записиваем в таблицу..
 

Cleric-Lviv

Lotus team
03.01.2008
600
0
#4
sax_ol


select count() from "Б" where toboid = () and status = 0 -- виводит например 50. ето и есть результат:)
и так дальше .... после всех select для вибраного toboid записиваем результат в сводную таблицу
 

Cleric-Lviv

Lotus team
03.01.2008
600
0
#5
sax_ol

угу, что не руский ето факт:)
ну каждий селект возвращает некий результат(число), субд = PL-SQL
вот ети результати нужно записать в таблицу.
колонка - данние
id = toboid
select(1) = результат 1-го селекта
select(2) = результат 2-го селекта
select(3) = результат -го селекта
и т.д
 

Cleric-Lviv

Lotus team
03.01.2008
600
0
#6
что хотел:)


create or replace procedure select_row() is
begin
for cc in (select * from ххх.companies_name)
loop
insert into ххх.results(toboid, status0, status1, countall)
values
(
cc.toboid,
(select count(*) from ххх.vln_companies v where v.toboid = cc.toboid and status = 0),
(select count(*) from ххх.vln_companies v where v.toboid = cc.toboid and status = 1),
(select count(*) from ххх.vln_companies v where v.toboid = cc.toboid)
);
end loop;
end
 

Cleric-Lviv

Lotus team
03.01.2008
600
0
#7
sax_ol

;)

вот так всегда:mellow: ну тогда пожалуста напишите что криво.... буду исправлять ошибки:) и учится!
 

Cleric-Lviv

Lotus team
03.01.2008
600
0
#10
sax_ol

Подскажите пожалуста, если я создаю вюху, и хочу записать данние только в первие три колонки а 4-5 оставить пустой(и заполнить их когда мне ето будет нужно), как ето реализировать?

create or replace view ххх.name
(tobonm, toboid, cnt, cnt0, cnt1)
as
select tobonm, toboid, count(1)
from ххх.vln_companies
group by tobonm, toboid
????????????
????????????;
 

Cleric-Lviv

Lotus team
03.01.2008
600
0
#11
sax_ol

не дочитал:( я думал что в вюхи можно записивать инфу как и в таблици