Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите, плз, составить наихитрейший запрос !!! / 8 сообщений из 8, страница 1 из 1
24.07.2002, 11:40
    #32038436
ldima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз, составить наихитрейший запрос !!!
Вот хочу обединить 2 таблицы по 2 полям, и толком не знаю как это сделать...
попробывал "в лоб", но естественно не получилось...

select *
from pro.prod p
,pro.brak b
where (p.prodsheet, p.goods) = (b.prodsheet, b.goods)
/* по аналогии с where (a, b) in (select c, d from...) */

Оракл должен уметь это делать, уж если он с иерархическими запросами работает

select id, owner, lpad(' ', 4*(Level-1)) || name, level
from main.dept
start with id=0 connect by prior id=owner;

то с таким-то должен справляться, тока надо знать как...
...
Рейтинг: 0 / 0
24.07.2002, 12:37
    #32038450
nick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз, составить наихитрейший запрос !!!
select *
from pro.prod p,pro.brak b
where (p.prodsheet=b.prodsheet) and (p.goods=b.goods)
если я только правильно поня, что ты хочешь.
...
Рейтинг: 0 / 0
24.07.2002, 14:02
    #32038490
ldima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз, составить наихитрейший запрос !!!
Боюсь что не совсем правильно, мне нужно сравнивать именно пару значений, а не каждое в отдельности.

pro.prod - скока и чего произведено
pro.brak - а это скока брака и какого
prodsheet - номер ведомости
goods - код изделия
val - количество
brak_type - тип брака

pro.prod pro.brak
prodsheet goods val prodsheet goods brak_type val
2 1 20 2 1 1 2
2 2 30 2 1 3 1
2 3 40 2 5 3 3
2 5 50 2 5 4 11

на выходе хочу видеть
prodsheet goods goods_val brak_type brak_val
2 1 20 1 2
2 1 20 3 1
2 2 30
2 3 40
2 5 50 3 1
2 5 50 4 11
...
Рейтинг: 0 / 0
24.07.2002, 14:39
    #32038502
nick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз, составить наихитрейший запрос !!!
select *
from pro.prod p,pro.brak b
where p.prodsheet=b.prodsheet(+) and p.goods=b.goods(+)

на твоем примере дает то, что надо.
если и это не то, тогда по-подробнее, а то я что-то совсем отупел и фраза "мне нужно сравнивать именно пару значений" мне совсем непонятна.
...
Рейтинг: 0 / 0
24.07.2002, 15:00
    #32038515
ldima
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз, составить наихитрейший запрос !!!
Дает то, что надо исключительно потому, что имеется ТОЛЬКО одно значение prodsheet, в таком случае из запроса вообще энтот критерий ( p.prodsheet=b.prodsheet ) можно выкинуть, а если а вот если значений prodsheet 2 и более, то энтот запрос не пригоден -)
ну ладно проехали, я по-другому сделаю...
Спасибо за участие -)
...
Рейтинг: 0 / 0
24.07.2002, 15:38
    #32038534
user1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз, составить наихитрейший запрос !!!
а если так ?

select A.prodsheet,A.goods,A.brak_type,min(A.val),min(A.val_brak)
from
(select P.*,B.brak_type,B.val as val_brak
from med.prod P,med.brak B
where P.prodsheet=B.prodsheet(+)
and P.goods=B.goods(+)
) A
where A.prodsheet=2 --или чему другому
group by A.prodsheet,A.goods,A.brak_type
...
Рейтинг: 0 / 0
30.07.2002, 19:50
    #32039766
frumich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз, составить наихитрейший запрос !!!
Извратимся.
where (trim(to_char(p.prodsheet))||','||trim(to_char( p.goods))) = (trim(to_char(b.prodsheet))||','||trim(to_char( b.goods)))
...
Рейтинг: 0 / 0
01.08.2002, 15:47
    #32040324
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, плз, составить наихитрейший запрос !!!
Ну так а в чем проблема?
Тут хоть на чем можно сделать, не только на Оракле:

select *
from pro.prod p
,pro.brak b
where p.prodsheet = b.prodsheet and
exists(select 1 from pro.brak b1 where b1.goods = p.goods and b1.prodsheet = b.prodsheet)

ну или лучше в exists вместо prodsheet сравниваться по ID
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите, плз, составить наихитрейший запрос !!! / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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