Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.02.06;
Скачать: [xml.tar.bz2];

Вниз

Вот фрагмент кода программы   Найти похожие ветки 

 
aOlegY   (2003-01-17 15:03) [0]

Локальная БД Paradox

Вот фрагмент кода программы:
Query.SQL.Clear;
Query.SQL.Add("Select");
Query.SQL.Add(" Lgotn01.N_Potr, Lgotn01.N_Gr_Lgot, Lgots.Percent");
Query.SQL.Add("from");
Query.SQL.Add(" ":work:Lgotn01" lgotn01, Lgots");
Query.SQL.Add("where");
Query.SQL.Add(" Lgots.N_Lgot = Lgotn01.N_Gr_Lgot");
Query.SQL.Add(" and Lgots.Year_ * 12 + Lgots.Month_ = Lgotn01.MonthLgs");
Query.Prepare;
Query.Open;

Вот фрагмент таблицы Lgotn_01:
N_Potr N_Gr_Lgot MonthLgs
----------------------------------
.................
16017 1 24034
16017 6 24034
16017 7 24034
...............
и ещё около 6-ти тысяч записей

Вот фрагмент таблицы Lgots:
N_Lgot Month_ Year Percent
--------------------------------------
.............
1 10 2002 0
6 10 2002 50
7 10 2002 50
..............

После выполнения вышеприведённого кода результирующей таблице
получается только 2 записи с N_Potr=16017
N_Potr N_Gr_Lgot Percent
--------------------------
16017 6 50
16017 6 50
Хотя должно быть 3. ПОЧЕМУ??????? Как сделать, что бы правильно работало?

Если в таблице Lgotn01 оставить только записи с N_Potr = 16017,
то всё работает правильно.


 
MsGuns   (2003-01-17 15:35) [1]

Для начала каждое из условий Where возьми в скобки (по типу Паскаля)


 
aOlegY   (2003-01-17 15:54) [2]

Поставил скобки. Всё равно, результат такой же неправильный выдаётся


 
MsGuns   (2003-01-17 16:07) [3]

Отладь запрос в SQL Explorer. Что-то странненько. Особенно если учесть:
> Если в таблице Lgotn01 оставить только записи с N_Potr = 16017,
то всё работает правильно.


Можно для верности применить конструкцию JOIN, но все равно непонятно 8-(


 
aOlegY   (2003-01-20 10:47) [4]

В SQL Explorere - Даже если в запрос добавить условие (and N_Potr = 16017), то возращает три записи. Убираю (N_Potr = 16017) - возращает только две строчки с N_Potr = 16017. Может обратиться в службу технической поддержки Borland?

Left outer join работает правильно, но не подходит, потому что медленно.

Мне удалось уйти от проблемы разбив запрос на два запроса и созданием ещё одной временной таблицы:

Query.Sql.Clear;
Query.Sql.Add("Select");
Query.Sql.Add(" N_Lgot, Percent, N_Type_Calc_Lgot, (Year_ * 12 + Month_) as MonthLgs");
Query.Sql.Add("from");
Query.Sql.Add(" Lgots");
Query.Prepare;
Query.Open;
MakePermanent(Query, "work", "Lgots01");

Query.SQL.Clear;
Query.SQL.Add("Select");
Query.SQL.Add(" Lgotn01.N_Potr, Lgots01.N_Lgot, Lgots01.Percent");
Query.SQL.Add("from");
Query.SQL.Add(" ":work:Lgotn01", ":work:Lgots01"");
Query.SQL.Add("where");
Query.SQL.Add(" (Lgots01.N_Lgot = Lgotn01.N_Gr_Lgot)");
Query.SQL.Add(" and Lgots01.MonthLgs = Lgotn01.MonthLgs");

Query.Prepare;
Query.Open;




Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.011 c
4-16007
K_O_T
2002-12-25 00:41
2003.02.06
Создание ContextMenuHandlers


14-15872
denisac
2003-01-18 14:55
2003.02.06
Работа продолжается!!!!!


1-15695
V-Isa
2003-01-27 15:51
2003.02.06
Шкура для окна


1-15658
MikeFW
2003-01-29 15:17
2003.02.06
Не могу понять в чем дело, помогите! Копирование файла из сети .


1-15683
Alexander
2003-01-27 09:17
2003.02.06
При печати создаются spool файлы. Если я задал печать в формате





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский