Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите с запросом / 13 сообщений из 13, страница 1 из 1
14.05.2004, 11:36:04
    #32517606
SergBSI
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
В принципе все достаточно просто но почемуто не получается есть запрос
SELECT UNIT.N, S_D.N1, S_S.N2, S_P.N3
FROM UNIT
LEFT OUTER JOIN S_P ON (UNIT.UP1 = S_P.CODE)
LEFT OUTER JOIN S_D ON (UNIT.UP3 = S_D.CODE)
LEFT OUTER JOIN S_S ON (UNIT.UP2 = S_S.CODE)
из полей N1-3 только одно не nil в каждой записи и очень желательно обединить их в одно Но только делаю N1||N2||N3 получаю в объединеном поле nil Как это победить?
...
Рейтинг: 0 / 0
14.05.2004, 11:41:29
    #32517625
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
авторполучается есть запрос
А водочкой запивать не пробовал?

-----------------
fedd: Мимопроходящий, к порядку!
...
Рейтинг: 0 / 0
14.05.2004, 12:18:33
    #32517747
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Какова версия сервера? Попробуйтие воспользоваться COALESCE (FB1.5).
...
Рейтинг: 0 / 0
14.05.2004, 12:24:39
    #32517775
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Пожно сделать UNION 3-х INNER JOIN'ов
...
Рейтинг: 0 / 0
14.05.2004, 12:30:32
    #32517794
SergBSI
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Попробуйтие воспользоваться COALESCE (FB1.5).
А как я не знаю эту функцию
Сервер Interbase 6.5(7.1)
...
Рейтинг: 0 / 0
14.05.2004, 12:40:30
    #32517831
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Мне непонятно, что заставляет людей пользовать глючные и как правило "цельнотянутые" версии от Борланда, когда есть стабильный и бесплатный FireBird?..
Ну да ладно. Хозяин - барин. Хочешь сидеть на Борланде - сиди.
Нету у него COALESCE. И многого другого тоже.

По поводу твоего запроса. Пиши как я уже говорил, через UNION
...
Рейтинг: 0 / 0
14.05.2004, 12:48:24
    #32517863
SergBSI
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Но как через UNION объединить поля
...
Рейтинг: 0 / 0
14.05.2004, 12:54:25
    #32517885
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
автор
...очень желательно обединить ...


Нечего не сказано про признак объединения.
Если это UNIT.N, и по джоину получаем единственное значение,то
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT 
  U.N, 
  (SELECT MIN(S_D.N1) FROM S_D D WHERE U.UP3 = D.CODE), 
  (SELECT MIN(S_S.N2) FROM S_S S WHERE U.UP2 = S.CODE),
  (SELECT MIN(S_P.N3) FROM S_P P WHERE U.UP1 = P.CODE)
FROM UNIT U
GROUP BY U.N
...
Рейтинг: 0 / 0
14.05.2004, 12:55:04
    #32517887
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Ты говоришьиз полей N1-N3 только одно не nil в каждой записи
Вот и пиши:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT UNIT.N, S_D.N1 
FROM UNIT JOIN S_P ON (UNIT.UP1 = S_P.CODE)
UNION ALL
SELECT UNIT.N, S_S.N2 
LEFT OUTER JOIN S_D ON (UNIT.UP3 = S_D.CODE)
UNION ALL
SELECT UNIT.N, S_P.N3  
LEFT OUTER JOIN S_S ON (UNIT.UP2 = S_S.CODE)
...
Рейтинг: 0 / 0
14.05.2004, 13:07:04
    #32517925
SergBSI
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Ругается
Token unknown - line 5, char -1.
LEFT.
...
Рейтинг: 0 / 0
14.05.2004, 13:08:05
    #32517931
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
фром допишите
...
Рейтинг: 0 / 0
14.05.2004, 13:11:14
    #32517943
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Ну вот он китайский классический метод копи-пасте!
Так должно быть:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT UNIT.N, S_D.N1 
FROM UNIT JOIN S_P ON (UNIT.UP1 = S_P.CODE)
UNION ALL
SELECT UNIT.N, S_S.N2 
FROM UNIT JOIN S_D ON (UNIT.UP3 = S_D.CODE)
UNION ALL
SELECT UNIT.N, S_P.N3  
FROM UNIT JOIN S_S ON (UNIT.UP2 = S_S.CODE)
...
Рейтинг: 0 / 0
14.05.2004, 13:11:47
    #32517946
SergBSI
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Спасибо ЗАРАБОТАЛО (второй день сним мучался)
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите с запросом / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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