![]() |
|
Модераторы: skyboy |
![]()
|
|
| Диас |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 11.6.2006 Репутация: нет Всего: нет |
Здравствуйте! СУБД Oracle 8i. Такая проблема: есть такой запрос:
в него нужно добавить еще 2 поля из 2х разных таблиц. 1) поле PERCENT из таблицы M3_KB_PERCENT С. Причем чтоб С.DealerCode=A.Bill_To и C.Date1<A.Invo_Date+1. Но таких записей удовлетворяющим условию может быть несколько. И тут может быть 2 варианта: а)если записей 2 и больше, то нужно взять значение той, чья дата позже (больше), если всего одна или вообще нет, то нужно вернуть 0. б)то же самое, только если в первом варианте условие было >=2, то тут >=1. И только если записей вообще нет вернуть 0. 2) если поле PERCENT <> 0 тогда добавить поле sum(KBAmount) из таблицы M3_KB_INV E. Причем E.InvoiceDate>=C.Date1(та максимальная дата из записи которой взяли поле PERCENT) и E.ClientId=A.Bill_To. Если что непонятно объяснил, уточняйте. Сам еще пока в стадии понимания потребности. Заранее благодарю. |
|||
|
||||
| Диас |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 11.6.2006 Репутация: нет Всего: нет |
может что-то типа такого?
в раздел WHERE добавить такие строчки:
Но так он не выдает те записи, которым нет соответствия в С, а нужно |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 6 Всего: 44 |
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Диас |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 11.6.2006 Репутация: нет Всего: нет |
так из С он берет все записи, просто там нет записей которые относятся к некоторым записям таблицы А.
Если убрать из запроса все что касается С, то запрос выдает 30 записей. А вместе с таблицей С только 18. А мне надо чтобы выдавал те же 30, просто в остальных 12ти, которым нет соответствия в таблице С, чтоб проставил нули в столбцах из С. |
|||
|
||||
| Диас |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 11.6.2006 Репутация: нет Всего: нет |
Если написать так:
|
||||
|
|||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 6 Всего: 44 |
Написать в join
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Диас |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 11.6.2006 Репутация: нет Всего: нет |
В том-то и дело, что Оракл 8ой к великому сожалению не понимает Join! Там вместо джоина в where надо ставить (+), но к подзапросу так делать нельзя :(
|
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 6 Всего: 44 |
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Диас |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 11.6.2006 Репутация: нет Всего: нет |
Правда!
|
|||
|
||||
| Диас |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 11.6.2006 Репутация: нет Всего: нет |
так без джойнов никак?
|
|||
|
||||
| Диас |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 11.6.2006 Репутация: нет Всего: нет |
Как можно в запросе
в подзапросе
вместо статичной даты использвать A.Invo_Dtae???? |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |