Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.12;
Скачать: CL | DM;

Вниз

Подскажите по 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.047 c
2-1138038072
WST
2006-01-23 20:41
2006.02.12
-= Версия файла =-


2-1138188142
VitalikS
2006-01-25 14:22
2006.02.12
Invalid use of keyword


15-1137929437
Хинт
2006-01-22 14:30
2006.02.12
Экспортируемые dll функции


3-1134626810
DaNMaTeR
2005-12-15 09:06
2006.02.12
Запрос SQL к запросу созданному в ADO


2-1138136914
xroot
2006-01-25 00:08
2006.02.12
Вывод спрайта на десктоп