Форум: "Начинающим";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];
ВнизПодскажите по join Найти похожие ветки
← →
Alex_V © (2006-01-23 07:19) [0]Есть запрос, который выбирает данные из четырех таблиц:
SELECT D.LCHET1, D.NCHETA, D3.FAMILY, D3.NAME, D3.FATHER, D.SUMMA, D.METKA, D2.KOD, D2.NM, D1.NM as NM_FIL
FROM ":db_inso:sb_print.dbf" D, ":db_inso:DB1.DBF" D3, ":db_inst:SB_K.DBF" D1, ":db_inst:SB_BANK.DBF" D2
WHERE
(D1.KOD = D.METKA)
AND (D2.KOD = D1.BANK)
AND (D.LCHET1=D3.LCHET)
AND (IST<>"")
AND (d2.kod=:kod)
ORDER BY D1.NM, D3.FAMILY, D.NCHETA
как правильно переписать его с использованием join сколько не пробовал, запрос выполняется тучу времени и толку нет, понимаю что что то не так пишу в условиях, но не пойму где...помогите....И еще замечено что при наличии более 15 с копейками тысяч записей в таблице D и программа вылетает с ошибкой Read from address:00000000...
← →
Desdechado © (2006-01-23 11:30) [1]> с использованием join
так у тебя и так он используется, только неявно
или тебе внешний джойн нужен?
кстати, IST - из какой таблицы?
← →
Alex_V © (2006-01-23 12:25) [2]ist из таблицы D, переписал с явным указанием join, разобрался вроде, ошибка не прошла....в чем дело не пойму, помогите, работа горит, как только число записей в таблице D меньше чем 15000 с копейками ошибка пропадает....Голова уже набекрень... Access violation at address: 00000000 Read from address: 00000000 Понятно что куда то в память залезает не туда куда нужно, но вот куда понять не могу....Да и почему от кол-ва записей зависит...
← →
Desdechado © (2006-01-23 12:42) [3]компоненты доступа какие?
сколько строк должно быть в результате?
для эксперимента отключи сортировку
← →
Alex_V © (2006-01-24 04:23) [4]Доступ через BDE, Table, Query, количество строк в результате <= количеству строк в таблице D, отключение сортировки не помогло, ошибка та же....еще варианты???
← →
ЮЮ © (2006-01-24 06:01) [5]А если убрать "длмнные" текстовые поля D3.FAMILY, D3.NAME, D3.FATHER, D1.NM из SELECT, ситуация изменится? Если да, то добавь Lookup поля для их получения
← →
Alex_V © (2006-01-24 06:24) [6]убрал из запроса текстовые поля, ситуация та же, ошибка осталась, да поясню, с базой я делать ничего не могу, только смотреть изменять ее нельзя, так что добавить поля при всем желании не получится...Или я что то не правильно понял?
← →
ASoft (2006-01-24 07:33) [7]без псевдонимов пробовал?
← →
Alex_V © (2006-01-24 09:42) [8]Дык и с псевдонимами работает если в таблице D записей меньше 15300 если больше то все, ошибка....
← →
Desdechado © (2006-01-24 12:03) [9]а зачем 15 тыщ записей на клиенте?
по поводу "убрать поля" - не из таблицы, а из запроса
а потом на клиенте их можно представить Lookup-полями из других справочников
← →
Alex_V © (2006-01-24 18:33) [10]Да я понял, :) спасибо всем, вроде разобрался я , переписал запрос с явным указанием join и подработал условия и вроде все пошло.... Результат трудов скинуть? мож тогда проанализируем и поймем почему вываливалась ошибка? :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c