Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / SQL Select / 6 сообщений из 6, страница 1 из 1
10.08.2006, 19:21
    #33911575
SvetaSh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Select
Буду очень благодарна если кто-то может помочь с Query...

задача такая,
ех.
John Smith
1
а
б
с
2
а
б
с
3
а
б
с

John в организационнои структуре предприятия имеет под собой 3 работника ( 1,2,3). 1,2,3 имеут под собой а,б,с.

Мне нужна Query to Select all under John Smith (вклучая 1,2,3 и все а,б,с).
Так что мой селект даст 12 records в этом примере.

Спасибо за помощь.скажите если вопрос не понятен, я поясню.
...
Рейтинг: 0 / 0
10.08.2006, 19:23
    #33911582
SvetaSh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Select
Vot chto ia imeu, na sei moment...

SELECT

employee_data_a.oid
approver_name = Employee_data_b.Last_name + " " + EMployee_data_b.first_name,
employee_name = Employee_data_a.Last_name + " " + Employee_data_a.first_name
FROM timecard_approval,
Employee_data Employee_data_a,
Employee_data Employee_data_b
WHERE ( timecard_approval.Employee_Oid *= Employee_data_a.oid ) and
( timecard_approval.Approver_oid *= Employee_data_b.oid )
and
timecard_approval.Type_Sym like 'timecard_approv%'
and timecard_approval.approver_oid = 1564
Order by Approver_name asc, employee_name asc
;
...
Рейтинг: 0 / 0
10.08.2006, 19:26
    #33911585
SvetaSh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Select
Nuzhno dobavit' k etomu records
gde approver_oid = employee_oid from this query.

Ia nikak ne mogu sostavit' eto, logicheski ponimau, a sintax nikak ...

Spasibo esche raz
...
Рейтинг: 0 / 0
10.08.2006, 19:33
    #33911593
urvas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Select
Такую задачу лучше решать следующим образом: в таблице с этими самыми джонами наверняка есть первичный ключ, напр. id_person, и, ОБЯЗАТЕЛЬНО, необходимо сделать ещё одно поле, напр. id_person_parent, в котором хранить первичный ключ предка. Тогда Ваша задача решается в полтычка через connect by в select'e ( ORACLE ).

name id_person id_person_parent
jonn a. 1 null
paul a. 2 1
samanta b. 3 2
john w. 4 2
...
...
Рейтинг: 0 / 0
11.08.2006, 00:48
    #33911867
SvetaSh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Select
Problema v tom chto, tree vinimaetsia is odnoi table, a mne nuzhno is 2x raznix, podskazhite chto ia delau ne tak...

DECLARE @oid int,
@node int

Declare @CurRow int
Declare @RowCount int
Declare @CurOid int


Select @CurRow = 1

/* Creating temporary table for tree storage*/


/* Inserting starting node into the temp table*/
SELECT timecard_approval.employee_oid

into #temp
FROM timecard_approval,
Employee_data Employee_data_a,
Employee_data Employee_data_b
WHERE ( timecard_approval.Employee_Oid *= Employee_data_a.oid ) and
( timecard_approval.Approver_oid *= Employee_data_b.oid )
and
timecard_approval.Type_Sym like 'timecard_approv%'
and timecard_approval.approver_oid = @oid

/* mne kazhetsia problema sdes' no v chem?????*/
Select @RowCount = @@RowCount
DECLARE wCursor Cursor For -- Creates Cursor for Temp Table
Select employee_oid
From #Temp Order By employee_oid ASC

OPEN wCursor

While @CurRow <= @RowCount
BEGIN
FETCH FROM wCursor INTO @CurOid

Insert into #Temp (employee_oid)
Select oid from employee_data where supervisor_oid = @CurOID

SELECT @CurRow = @CurRow + 1
END


Select * From #Temp Order by employee_oid

CLOSE wCursor
DEALLOCATE wCursor

/*#######*/
DROP TABLE #temp
;

spasibo ogromnoe za pomosch.

Sveta
...
Рейтинг: 0 / 0
14.08.2006, 13:23
    #33916275
rhs
rhs
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Select
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
if object_id( 'tempdb..#t') is not null drop table #t

select 'John Smith' as id, '0' as parent_id into #t
union all select '1', 'John Smith'
union all select 'а1', '1'
union all select 'б1', '1'
union all select 'с1', '1'
union all select '2', 'John Smith'
union all select 'а2', '2'
union all select 'б2', '2'
union all select 'с2', '2'
union all select '3', 'John Smith'
union all select 'а3', '3'
union all select 'б3', '3'
union all select 'с3', '3'
union all select 'Bill',  '0' as parent_id
union all select '1B', 'Bill'
union all select 'а1B', '1B'

select #t.id  , parent_id
from #t 
where #t.parent_id= 'John Smith'
	or
	#t.parent_id in(select t2.id 
			from #t as t1 
			join #t as t2 on t2.parent_id= t1.id 
			where t1.id= 'John Smith'
 			)
id 1а1б1с12а2б2с23а3б3с3
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / SQL Select / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]