powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / SQL Вопрос
12 сообщений из 12, страница 1 из 1
SQL Вопрос
    #33665431
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я budu ochen' blagodarna, если кто - то мог бы помочь мне с этим:

Я долженa или сделать этy Query без UNION, или вставить больше аргументов, чтобы query by Update_by_sym и work_order_data.originator_oid вместе.

SELECT Inv_Move_Log.inv_move_date,
Inv_Move_Log.from_inv_type_sym,
Inv_Move_Log.to_inv_type_sym,
Inv_Move_Log.updated_by_sym,
Inv_Move_Log.oid,
Inv_Move_Log.inv_oid,
Inv_Move_Log.from_inv_status_oid,
Inv_Move_Log.to_inv_status_oid,
Inv_Move_Log.from_parent_oid,
Inv_Move_Log.to_parent_oid,
Inv_Move_Log.from_on_aircraft_oid,
Inv_Move_Log.to_on_aircraft_oid,
Inv_Move_Log.from_city_oid,
Inv_Move_Log.to_city_oid,
Inv_Move_Log.from_ac_position_oid,
Inv_Move_Log.to_ac_position_oid,
Inv_Move_Log.from_starting_date,
Inv_Move_Log.to_starting_date,
Inv_Move_Log.coo_oid,
Inv_Move_Log.uom_code_oid,
Inv_Move_Log.create_date,
Inv_Move_Log.from_uom_qty,
Inv_Move_Log.to_uom_qty,
Inv_Move_Log.From_Purch_price,
Inv_Move_Log.To_Purch_price,
Inv_Move_Log.From_Core_Value,
Inv_Move_Log.To_Core_Value,
Inv_Move_Log.Wo_inv_action_oid ,
rotable_inventory.serial_number,
item_master.id,
item_master.description,
'from_bin_loc' = lm_1.location_id,
'to_bin_loc' = lm_2.location_id,
null wo_data_line_no,
null wo_id
FROM Inv_Move_Log ,
rotable_inventory,
item_master,
location_master lm_1,
location_master lm_2
WHERE ( Inv_Move_Log.inv_oid = :Inv_Oid ) and
rotable_inventory.oid = Inv_Move_Log.inv_oid and
rotable_inventory.item_oid = item_master.oid and
Inv_Move_Log.from_bin_location_oid *= lm_1.oid and
Inv_Move_Log.to_bin_location_oid *= lm_2.oid and
( Inv_Move_Log.Wo_inv_action_oid not in
(select oid from wo_inv_action where oid = Inv_Move_Log.Wo_inv_action_oid and
wo_data_oid in (select oid from work_order_data where oid = wo_inv_action.wo_data_oid)))



union
SELECT Inv_Move_Log.inv_move_date,
Inv_Move_Log.from_inv_type_sym,
Inv_Move_Log.to_inv_type_sym,
Inv_Move_Log.updated_by_sym,
Inv_Move_Log.oid,
Inv_Move_Log.inv_oid,
Inv_Move_Log.from_inv_status_oid,
Inv_Move_Log.to_inv_status_oid,
Inv_Move_Log.from_parent_oid,
Inv_Move_Log.to_parent_oid,
Inv_Move_Log.from_on_aircraft_oid,
Inv_Move_Log.to_on_aircraft_oid,
Inv_Move_Log.from_city_oid,
Inv_Move_Log.to_city_oid,
Inv_Move_Log.from_ac_position_oid,
Inv_Move_Log.to_ac_position_oid,
Inv_Move_Log.from_starting_date,
Inv_Move_Log.to_starting_date,
Inv_Move_Log.coo_oid,
Inv_Move_Log.uom_code_oid,
Inv_Move_Log.create_date,
Inv_Move_Log.from_uom_qty,
Inv_Move_Log.to_uom_qty,
Inv_Move_Log.From_Purch_price,
Inv_Move_Log.To_Purch_price,
Inv_Move_Log.From_Core_Value,
Inv_Move_Log.To_Core_Value,
Inv_Move_Log.Wo_inv_action_oid,
rotable_inventory.serial_number,
item_master.id,
item_master.description,
'from_bin_loc' = lm_1.location_id,
'to_bin_loc' = lm_2.location_id,
Work_Order_data.Line_No wo_data_line_no,
Work_Order_Header.Id wo_id
FROM Inv_Move_Log,
Work_Order_data,
Work_Order_Header,
WO_Inv_Action ,
rotable_inventory,
item_master,
location_master lm_1,
location_master lm_2
WHERE ( Work_Order_data.WO_Header_Oid = Work_Order_Header.Oid ) and
( Work_Order_data.Oid = WO_Inv_Action.WO_Data_Oid ) and
rotable_inventory.oid = Inv_Move_Log.inv_oid and
rotable_inventory.item_oid = item_master.oid and
Inv_Move_Log.from_bin_location_oid *= lm_1.oid and
Inv_Move_Log.to_bin_location_oid *= lm_2.oid and
( WO_Inv_Action.Oid = Inv_Move_Log.Wo_inv_action_oid ) and
( Inv_Move_Log.inv_oid = :Inv_Oid )
...
Рейтинг: 0 / 0
SQL Вопрос
    #33665901
18-я весна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvetaShЯ budu ochen' blagodarna, если кто - то мог бы помочь мне с этим:
Я долженa или сделать этy Query без UNION, или вставить больше аргументов, чтобы query by Update_by_sym и work_order_data.originator_oid вместе.

Может я один такой непонятливый, но кажется Вы как-то не очень четко сообщили нам в чем задача и где проблема.
Я бы начал вот с этого:
1) Приведите пример, что возвращает указанный запрос.
2) Приведите, что должен возвращать требуемый запрос.
3) Какие Вы видете пути решения? Чем они не подходят?

Конкретно по тексту письма есть вопросы:
Почему возникло требование "сделать этy Query без UNION"? Ведь это средство, а не цель.
Так же префразируйте пожалуйста фразу вставить больше аргументов, чтобы query by Update_by_sym и work_order_data.originator_oid вместе
Если с русским языком не очень, приведите наряду с русским текстом и оригинал фразы на английском (хотя это offtopic здесь :-( ).

PS. Вот честно, я еще с предыдущих Ваших сообщений хотел помочь, но трудно что-либо посоветовать если проблема описана невнятно, а времени на допросы с пристрастием думаю здесь ни у кого нет.
...
Рейтинг: 0 / 0
SQL Вопрос
    #33665913
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я знаю SQL для Оракла,
но думяю что если джойн который ты написала:
Inv_Move_Log.from_bin_location_oid *= lm_1.oid
подразумевает:
Inv_Move_Log.from_bin_location_oid(+)= lm_1.oid
тогда SQL можно напмсать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select ...,
Work_Order_data.Line_No wo_data_line_no,
Work_Order_Header.Id wo_id
FROM Inv_Move_Log, Work_Order_data, Work_Order_Header, WO_Inv_Action, rotable_inventory, item_master, location_master lm_1, location_master lm_2
WHERE 
rotable_inventory.oid = Inv_Move_Log.inv_oid and
rotable_inventory.item_oid = item_master.oid and
Inv_Move_Log.from_bin_location_oid *= lm_1.oid and
Inv_Move_Log.to_bin_location_oid *= lm_2.oid and
Inv_Move_Log.inv_oid = :Inv_Oid  and
WO_Inv_Action.Oid* = Inv_Move_Log.Wo_inv_action_oid and
Work_Order_data.Oid* = WO_Inv_Action.WO_Data_Oid and
Work_Order_Header.Oid* = Work_Order_data.WO_Header_Oid 
...
Рейтинг: 0 / 0
SQL Вопрос
    #33665958
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема вот в чем:
Етот запрос дает мне ресултат by Item_oid, а мне нужно query by Updated_by_sym ( string) and originator_oid ( intenger). я поставлю их как аргументы к Datawindow, потом create Query Window to Query by these fields и pass them kak argumentы k Datawindow.
Может я не понятно объяснила, избиняюсь.
Проблема в том что оба аргумента это Employee, один Employee_oid ( originator _oid ) , второй Employee_name ( Updated_by_Sym)
...
Рейтинг: 0 / 0
SQL Вопрос
    #33665999
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Света,
1) Какая у тебя база данных? С точностью до номера билда пожалуйста
2) Приведи пример данных в исходных таблицах.
3) Покажи пример как должен выглядеть результат.
4) Сократи и исходные данные и результат до ключевых полей и максимум двух полей вывода.

А еще будет хорошо чтобы следующий SQL вопрос был бы в форуме по соотвествующему серверу базы данных.
...
Рейтинг: 0 / 0
SQL Вопрос
    #33667994
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Database: Microsoft® SQL Server™ 2000

Приведите пример, что возвращает указанный запрос. ( excluded some columns to fit the screen)

inv_move_date updated_by_sym inv_oid Wo_inv_action_oid wo_data_line_no wo_id
10/1/2000 0:00 user 645
10/1/2000 0:00 Paul Crumley 645
11/12/2000 0:00 wo_inv_act 645 10 15 18
11/13/2000 0:00 wo_inv_act 645 18 4 20
1/15/2003 0:00 wo_inv_act 645 11142 1 3486
1/18/2003 12:00 wo_inv_act 645 11294 3 2663
8/30/2003 14:00 wo_inv_act 645 19379 1 4798
9/1/2003 14:00 move_desc 645
9/2/2003 20:09 move_desc 645
11/2/2004 move_desc 645
11/3/2004 0:00 Susan Zager-Martin 645
11/1/2005 7:00 wo_inv_act 645 120787 1 JT9-M016
12/8/2005 Charlotte Franklin 645
12/9/2005 Repair 645

в случае когда Updated_by_sym = "wo_inv_action" или Updated_by_sym = "Repair"
нужно линк к таблице wo_inv_action и work_order_data, и вывести work_order_data.originator_oid ( by adding another column, in the case when Updated_by_sym = name that table will be empty.) но, work_order_data.originator_oid is an integer that links to Employee_Data to get name and Updated_by_sym is a name( string).
Then, I need to query by Updated_by_sym and matching work_order_data.originator_oid to get all moves for that Employee.
я очень извиняюць что пишу половину по русски половину по английски, надеюсь понятно.

пример как должен выглядеть результат ( пример):

inv_move_date updated_by_sym inv_oid Wo_inv_action_oid wo_data_line_no wo_id wo_data.originator_oid Employee_Data.name
10/1/2000 0:00 Paul Crumley 645
10/1/2000 0:00 Paul Crumley 645
11/12/2000 0:00 Paul Crumley 645 10 15 18
11/13/2000 0:00 Paul Crumley 645 18 4 20
1/15/2003 0:00 wo_inv_act 645 11142 1 3486 123 Paul Crumley
1/18/2003 12:00 wo_inv_act 645 11294 3 2663 123 Paul Crumley
8/30/2003 14:00 wo_inv_act 645 19379 1 4798 123 Paul Crumley
11/3/2004 0:00 Paul Crumley 645
11/1/2005 7:00 wo_inv_act 645 120787 1 JT9-M016 123 Paul Crumley
12/8/2005 Paul Crumley 645
12/9/2005 Paul Crumley 645


I just put together the sample results ( nothing to do with the real data).
...
Рейтинг: 0 / 0
SQL Вопрос
    #33668019
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to ZUZU,

tried doesn't work.
thanks for the efford
...
Рейтинг: 0 / 0
SQL Вопрос
    #33668114
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте тег CSV в форуме для таблиц, по крайней мере читаемо:
inv_move_date updated_by_sym inv_oid Wo_inv_action_oid wo_data_line_no wo_id wo_data.originator_oid Employee_Data.name11/13/2000 0:00 Paul Crumley 645 18 4 20 NULL NULL1/15/2003 0:00 wo_inv_act 645 11142 1 3486 123 Paul Crumley1/18/2003 12:00 wo_inv_act 645 11294 3 2663 123 Paul Crumley
Чтобы присоединить последние 2 столбца Вам нужно выполнить outer join (как уже Вам посоветовали)
WO_Inv_Action.Oid *= Inv_Move_Log.Wo_inv_action_oid and
Work_Order_data.Oid *= WO_Inv_Action.WO_Data_Oid and
Work_Order_Header.Oid *= Work_Order_data.WO_Header_Oid
Но не только этих таблиц. Надо еще outer join всей цепочки присоединяемых таблиц вплоть до справочника сотрудников.
Т.е.
WO_Inv_Action.Oid *= Inv_Move_Log.Wo_inv_action_oid and
Work_Order_data.Oid *= WO_Inv_Action.WO_Data_Oid and
Work_Order_Header.Oid *= Work_Order_data.WO_Header_Oid and
Employee_Data.oid *= Work_Order_data.originator_oid
Плюс фильтр по сотруднику
and (Work_Order_data.originator_oid = :ai_empid OR Inv_Move_Log.updated_by_sym = :as_empname)
...
Рейтинг: 0 / 0
SQL Вопрос
    #33668143
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я уже пыталаць это делать, но в первой половине Union, those fields are NULL and I get the error.
я попробую ещё раз, потом опубликую то что у меня получилось.

Спасибо Огромное за помощ,
Света
...
Рейтинг: 0 / 0
SQL Вопрос
    #33668202
SvetaSh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
What am I doing wrong here, get an infinite query:

SELECT Inv_Move_Log.inv_move_date,
Inv_Move_Log.from_inv_type_sym,
Inv_Move_Log.to_inv_type_sym,
Inv_Move_Log.updated_by_sym,
Inv_Move_Log.oid,
Inv_Move_Log.inv_oid,
Inv_Move_Log.from_inv_status_oid,
Inv_Move_Log.to_inv_status_oid,
Inv_Move_Log.from_parent_oid,
Inv_Move_Log.to_parent_oid,
Inv_Move_Log.from_on_aircraft_oid,
Inv_Move_Log.to_on_aircraft_oid,
Inv_Move_Log.from_city_oid,
Inv_Move_Log.to_city_oid,
Inv_Move_Log.from_ac_position_oid,
Inv_Move_Log.to_ac_position_oid,
Inv_Move_Log.from_starting_date,
Inv_Move_Log.to_starting_date,
Inv_Move_Log.coo_oid,
Inv_Move_Log.uom_code_oid,
Inv_Move_Log.create_date,
Inv_Move_Log.from_uom_qty,
Inv_Move_Log.to_uom_qty,
Inv_Move_Log.From_Purch_price,
Inv_Move_Log.To_Purch_price,
Inv_Move_Log.From_Core_Value,
Inv_Move_Log.To_Core_Value,
Inv_Move_Log.Wo_inv_action_oid ,
item_master.id,
item_master.description,
'from_bin_loc' = lm_1.location_id,
'to_bin_loc' = lm_2.location_id,
null wo_data_line_no,
null wo_id,
null wo_data_originator_oid
FROM Inv_Move_Log ,
item_master,
location_master lm_1,
location_master lm_2,
wo_inv_action,
employee_Data,
work_order_data,
work_order_header
WHERE

Inv_Move_Log.from_bin_location_oid *= lm_1.oid and
Inv_Move_Log.to_bin_location_oid *= lm_2.oid and
( Inv_Move_Log.Wo_inv_action_oid not in
(select oid from wo_inv_action where oid = Inv_Move_Log.Wo_inv_action_oid and
wo_data_oid in (select oid from work_order_data where oid = wo_inv_action.wo_data_oid))) and
wo_inv_action.oid =* Inv_move_log.wo_inv_action_oid and
work_order_header.oid = Work_order_data.WO_Header_oid and
Employee_data.oid = Work_order_data.originator_oid and
(work_order_data.originator_oid = 687 OR Inv_move_log.updated_by_sym = 'Mathews')

union
SELECT Inv_Move_Log.inv_move_date,
Inv_Move_Log.from_inv_type_sym,
Inv_Move_Log.to_inv_type_sym,
Inv_Move_Log.updated_by_sym,
Inv_Move_Log.oid,
Inv_Move_Log.inv_oid,
Inv_Move_Log.from_inv_status_oid,
Inv_Move_Log.to_inv_status_oid,
Inv_Move_Log.from_parent_oid,
Inv_Move_Log.to_parent_oid,
Inv_Move_Log.from_on_aircraft_oid,
Inv_Move_Log.to_on_aircraft_oid,
Inv_Move_Log.from_city_oid,
Inv_Move_Log.to_city_oid,
Inv_Move_Log.from_ac_position_oid,
Inv_Move_Log.to_ac_position_oid,
Inv_Move_Log.from_starting_date,
Inv_Move_Log.to_starting_date,
Inv_Move_Log.coo_oid,
Inv_Move_Log.uom_code_oid,
Inv_Move_Log.create_date,
Inv_Move_Log.from_uom_qty,
Inv_Move_Log.to_uom_qty,
Inv_Move_Log.From_Purch_price,
Inv_Move_Log.To_Purch_price,
Inv_Move_Log.From_Core_Value,
Inv_Move_Log.To_Core_Value,
Inv_Move_Log.Wo_inv_action_oid,
item_master.id,
item_master.description,
'from_bin_loc' = lm_1.location_id,
'to_bin_loc' = lm_2.location_id,
Work_Order_data.Line_No wo_data_line_no,
Work_Order_Header.Id wo_id,
work_order_data.originator_oid
FROM Inv_Move_Log,
Work_Order_data,
Work_Order_Header,
WO_Inv_Action ,
employee_Data,
item_master,
location_master lm_1,
location_master lm_2
WHERE
Inv_Move_Log.from_bin_location_oid *= lm_1.oid and
Inv_Move_Log.to_bin_location_oid *= lm_2.oid and
( WO_Inv_Action.Oid =* Inv_Move_Log.Wo_inv_action_oid ) and
wo_inv_action.oid =* Inv_move_log.wo_inv_action_oid and
work_order_header.oid = Work_order_data.WO_Header_oid and
Employee_data.oid = Work_order_data.originator_oid and
(work_order_data.originator_oid = 687 OR Inv_move_log.updated_by_sym = 'Mathews')
...
Рейтинг: 0 / 0
SQL Вопрос
    #33668276
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO, и в первом и втором запросе union не хватает join'ов для всех указанных таблиц в FROM. В частности во втором из них указана таблица item_master, но ни с чем не связана.
В этом случае происходит перемножение количества записей всех несвязанных таблиц.
...
Рейтинг: 0 / 0
SQL Вопрос
    #33668305
alexis glinski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlА еще будет хорошо чтобы следующий SQL вопрос был бы в форуме по соотвествующему серверу базы данных.
девушкам наверное разрешили оффтопик ...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / SQL Вопрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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