Найдено 37 результатов

bender
30 ноя 2007, 10:36
Форум: Общие проблемы
Тема: Перемешиваются данные в результатах запроса
Ответы: 16
Просмотры: 11459

Все, вроде победил, подключил UDF функцию i64nvl, аналог COALESCE

Большое спасибо, за помощь!
bender
29 ноя 2007, 15:52
Форум: Общие проблемы
Тема: Перемешиваются данные в результатах запроса
Ответы: 16
Просмотры: 11459

Все перегрелся, думаю про одно пишу про другое CASE с CAST перепутал, нету в 1.х CASE'а
Процедуру ты имеешь в виду хранимую процедуру? Если да, то как ее воткнуть в запрос, таким образом не получается:

Код: Выделить всё

select
(max(C.TAU1) - (select OUT_VAL from Null2Int(sum(D1.TAU1)))) as TAU1 ...
bender
29 ноя 2007, 15:34
Форум: Общие проблемы
Тема: Перемешиваются данные в результатах запроса
Ответы: 16
Просмотры: 11459

CASE есть, а версию сервера повышать не возможно из-за того, что придется проверить все SQL запросы на корректное выполнение, даже если я в них уверен на 99%, а на это нет времени, начальство торопит :(
bender
29 ноя 2007, 14:56
Форум: Общие проблемы
Тема: Перемешиваются данные в результатах запроса
Ответы: 16
Просмотры: 11459

1 - Вообще по аналогии с C++ я думал что null будет преобразован к типу первого операнда, я именно к integer и в результате получится 10 - 0 = 10;
2- COALESCE не годится у меня Firebird 1.x, перестановка сервера на 1.5 не годится как выход из положения.

Я 2 года за базы данных не садился :)
bender
29 ноя 2007, 13:32
Форум: Общие проблемы
Тема: Перемешиваются данные в результатах запроса
Ответы: 16
Просмотры: 11459

Если честно, то думал, что получится 10. Так как можно выйти из этой ситуации, как внутри запроса NULL преобразовать к 0?
bender
29 ноя 2007, 12:05
Форум: Общие проблемы
Тема: Перемешиваются данные в результатах запроса
Ответы: 16
Просмотры: 11459

Немного перестроил запрос: select (max(C.Q1) - sum(D.Q1)) as Q1 from CUR C left join DAY D1 on (D.HDR_ID = C.HDR_ID) and (D.CURDAY > '29.11.2007') where (C.HDR_ID = 29) and (C.CUR_ID = (select max(C2.CUR_ID) from CUR C2 where (C2.HDR_ID = C.HDR_ID))) без агрегатов этот запрос возвращает значения C.Q...
bender
27 ноя 2007, 20:21
Форум: Общие проблемы
Тема: Перемешиваются данные в результатах запроса
Ответы: 16
Просмотры: 11459

Воистину правда, меня с толку сбил тот факт, что сумма получалась больше на поле C.Q1. Спасибо, завтра на работе окончательно проверю. Получилось в таком виде: select (sum(D.Q1)) as Q1 from DAY D join CUR C on (C.HDR_ID = D.HDR_ID) and (C.CUR_ID = (select max(C2.CUR_ID) from CUR C2 where (C2.HDR_ID ...
bender
27 ноя 2007, 18:14
Форум: Общие проблемы
Тема: Перемешиваются данные в результатах запроса
Ответы: 16
Просмотры: 11459

В смысле без агрегатов, мне нужно из максимального значения C.Q1 вычесть сумму D.Q1, возможно нужно изменить на max(distinct C.Q1), но это смысла не меняет, более того следующий запрос: select (sum(D.Q1)) as Q1 from DAY D join CUR C on C.HDR_ID = D.HDR_ID where (D.HDR_ID=283) and (D.CURDAY >= '11.10...
bender
27 ноя 2007, 16:00
Форум: Общие проблемы
Тема: Перемешиваются данные в результатах запроса
Ответы: 16
Просмотры: 11459

Перемешиваются данные в результатах запроса

Такая вот проблема, не могу составить запрос, точнее не могу добиться требуемого результата от такого вот запроса: select (max(C.Q1) - sum(D.Q1)) as Q1 from DAY D join CUR C on C.HDR_ID = D.HDR_ID where (D.HDR_ID=283) and (D.CURDAY >= '11.10.2007') Видимо после выборки данных из таблиц D и C в коде ...
bender
29 янв 2007, 15:05
Форум: Вопросы создания клиентских и серверных приложений
Тема: Сортировка по Lookup полю
Ответы: 23
Просмотры: 17784

Странно,но видимо так оно и есть. Все, тема закрыта, всем нормально откликнувшимся людям большое спасибо!
bender
29 янв 2007, 14:31
Форум: Вопросы создания клиентских и серверных приложений
Тема: Сортировка по Lookup полю
Ответы: 23
Просмотры: 17784

У меня перед глазами лежит книга "Firebird Руководство разработчика баз данных" Хелена Борри и в ней в разделе "Размещение пустых значений" (стр. 505) написано: "...По умолчанию Firebird помещает сортируемые столбцы, имеющие NULL, в конец выходного набора. Начиная с версии 1.5, вы можете использоват...
bender
29 янв 2007, 13:50
Форум: Вопросы создания клиентских и серверных приложений
Тема: Сортировка по Lookup полю
Ответы: 23
Просмотры: 17784

Не так выразился, я не имел в виду индексы в понимании терминологии Firebird сервера, а подразумевал столбец ID в таблице D. Ладно забейте, спасибо за помощь, болше вопросов не имею... хотя остался вопрос, почему при выполнении этого запроса: select M.MODEL_NAME AS MODEL_NAME, P1.PTRPST_NAME AS PTR_...
bender
29 янв 2007, 12:04
Форум: Вопросы создания клиентских и серверных приложений
Тема: Сортировка по Lookup полю
Ответы: 23
Просмотры: 17784

Ну насколько я понял, LEFT JOIN в моем случае нужен только если в записях таблицы D будут содержаться не все индексы ссылающиеся на записи из таблиц P1, P2 и M. Так?
А что JOIN будет работать быстрее чем LEFT JOIN, если из правых таблиц придется выбирать все записи?
bender
29 янв 2007, 10:37
Форум: Вопросы создания клиентских и серверных приложений
Тема: Сортировка по Lookup полю
Ответы: 23
Просмотры: 17784

WildSery, я понял свою ошибку, исправил к такому виду, теперь правильно построил запрос? select M.MODEL_NAME AS MODEL_NAME, P1.PTRPST_NAME AS PTR_NAME, P2.PTRPST_NAME AS PST_NAME from DEVICES D left join PTRPST P1 on (P1.PTRPST_ID=D.PTR_ID) left join PTRPST P2 on (P2.PTRPST_ID=D.PST_ID) left join DE...
bender
26 янв 2007, 17:43
Форум: Вопросы создания клиентских и серверных приложений
Тема: Сортировка по Lookup полю
Ответы: 23
Просмотры: 17784

StealthAIDS писал(а):

Код: Выделить всё

 
...
from DEVICES D 
  join PTRPST P1 on (P1.PTRPST_ID=D.PTR_ID)
  join PTRPST P2 on (P2.PTRPST_ID=D.PST_ID)
  join DEVMODELS M on (M.MODEL_ID=D.MODEL_ID)
...
А это зачем? Вроде все работает без этого куска кода?
bender
26 янв 2007, 16:51
Форум: Вопросы создания клиентских и серверных приложений
Тема: Сортировка по Lookup полю
Ответы: 23
Просмотры: 17784

Разобрался (не с той стороны таблицы всавлял :) ) Получилось вот что: select M.MODEL_NAME AS MODEL_NAME, P1.PTRPST_NAME AS PTR_NAME, P2.PTRPST_NAME AS PST_NAME from PTRPST P1, PTRPST P2, DEVMODELS M join DEVICES D on (M.MODEL_ID=D.MODEL_ID) and (P1.PTRPST_ID=D.PTR_ID) and (P2.PTRPST_ID=D.PST_ID) whe...
bender
26 янв 2007, 14:41
Форум: Вопросы создания клиентских и серверных приложений
Тема: Сортировка по Lookup полю
Ответы: 23
Просмотры: 17784

А как заджойнить такую ситуацию: есть таблица A в которой есть столбцы MODEL_ID, PTR_ID, PST_ID есть таблица B в которой есть столбцы ID, MODEL_NAME есть таблица C в которой есть столбцы ID, PTRPST_NAME мне надо выбрать в таблицу A вычисляемые поля: MODEL_NAME , где A.MODEL_ID = B.ID PTR_NAME , где ...
bender
25 янв 2007, 18:08
Форум: Вопросы создания клиентских и серверных приложений
Тема: Сортировка по Lookup полю
Ответы: 23
Просмотры: 17784

Сорри погорячился, вот так:
select NAME_ID, (select NAME from B where B.ID=A.NAME_ID) as NAME FROM A
bender
25 янв 2007, 17:48
Форум: Вопросы создания клиентских и серверных приложений
Тема: Сортировка по Lookup полю
Ответы: 23
Просмотры: 17784

сорри за второй топ, сервак глюкнул
bender
25 янв 2007, 17:47
Форум: Вопросы создания клиентских и серверных приложений
Тема: Сортировка по Lookup полю
Ответы: 23
Просмотры: 17784

Сортировка по Lookup полю

Извиняюсь, если этот вопрос уже обсуждался, (я прочитал некоторые темы) но он так и остался для меня непонятным. Имеется запрос: select NAME_ID, (select ID, NAME from B where B.ID=A.NAME_ID) as NAME FROM A добавить к этому запросу ORDER BY NAME насколько я понимаю нельзя. Так как же мне отсортироват...