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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.009 c
1-15551
Sergy
2003-01-28 15:28
2003.02.06
Не могу найти ссылку на файл?


1-15755
Fiend
2003-01-28 11:00
2003.02.06
Хотел было поймать WM_MDIMAXIMIZE, да не тут-то было :(


8-15761
Rom@n
2002-10-23 08:06
2003.02.06
Графика


1-15533
first_aid
2003-01-27 06:00
2003.02.06
Вопрос к тем кто использует в своих программах темы Win XP.


1-15633
Tolanay
2003-01-27 12:14
2003.02.06
тип Cardinal





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский