Форум: "Начинающим";
Текущий архив: 2008.11.09;
Скачать: [xml.tar.bz2];
ВнизКак избавиться от дублирования (SQL - full join) Найти похожие ветки
← →
SveTTT (2008-09-27 01:52) [0]Использую
SELECT Z.A1, Z.B1, P.A1, P.B1 from "PDK1.db" Z FULL JOIN "PDK2.DB" P ON (Z.A1 = P.A1)
Z.A1 и P.A1 - ДАты
подскажите, пожалуйста, как в избавиться от такой ерунды, что если при дате Z.A1 имею 3 значения Z.B1, а при P.A1 - 1 P.B1 , то при совпадении даты в результате на каждую запись Z.B1 дублируется P.B1.
Попробую наглядно:
Z.A1 P.A1 P.A1 P.B1
01.01.2008 100
02.01.2008 500
03.01.2008 200
05.01.2008 300 05.01.2008 800
05.01.2008 100 05.01.2008 800
05.01.2008 200 05.01.2008 800
Выделен дубляж.
Хотя P.A1 - 05.01.2008 имело только одно значение 800
← →
SveTTT (2008-09-27 02:01) [1]В заголовках ошибка -
Z.A1 Z.B1 P.A1 P.B1
← →
Johnmen © (2008-09-27 13:11) [2]А как работает полное внешнее соединение ты уже разобрался?
← →
Anatoly Podgoretsky © (2008-09-27 13:32) [3]Дублирование не наблюдается, все строки разные.
← →
sniknik © (2008-09-27 15:21) [4]какие проблемы, разве условие объединения - Z.A1 = P.A1 для какойто из строк выполнилось неправильно?
> как в избавиться от такой ерунды
написать запрос так, чтобы он реально соответствовал тому, что ты хочеш получить. (и не спрашивай как, до тех пор пока не озвучишь желаемое)
← →
sniknik © (2008-09-27 15:31) [5]кстати первое сравнение не выполняется при данных условиях, т.е. первая строка "02.01.2008 500" тут не к месту, видать дописана ручками, а не из реального результата.
зачем ты нас обманываешь? думаешь это поможет в решении вопроса? нет все как раз наоборот...
← →
SveTTT (2008-09-27 20:20) [6]
> кстати первое сравнение не выполняется при данных условиях,
> т.е. первая строка "02.01.2008 500" тут не к месту,
> видать дописана ручками, а не из реального результата.
> зачем ты нас обманываешь? думаешь это поможет в решении
> вопроса? нет все как раз наоборот...
Уважаемый
> sniknik
!
В чем обман? Здесь все написано ручками. Если бы была возможность скрин прикрепить - то... .
Итог попадает в FR. На стороне клиента пробывала Supress. Но результат не точен.
В итоге
> озвучишь желаемое
пытаюсь получить
05.01.2008 300 05.01.2008 800
05.01.2008 100
05.01.2008 200
← →
SveTTT (2008-09-27 20:23) [7]
All.Close;
All.SQL.Clear;
All.SQL.Add("SELECT Z.A1, Z.B1, Z.C1, Z.D1, P.A1, P.B1, P.C1 from "PDK1.db" Z FULL JOIN "PDK2.DB" P ON (Z.A1 = P.A1) ");
All.Open;
← →
sniknik © (2008-09-27 21:09) [8]> В чем обман? Здесь все написано ручками.
ни в чем, извини. это я ошибся.
> пытаюсь получить
> ...
не получится, под условие попадает и 2я и 3я запись все честно, составить же такое, чтобы совпадал только первый результат... это вряд ли. если конечно нет еще каких нибудь дополнительных полей, со значениями которые помогут.
← →
Anatoly Podgoretsky © (2008-09-27 21:25) [9]> SveTTT (27.09.2008 20:20:06) [6]
OnGetText и дополнительное поле с признаком отображать или нет, но намучаешься и дурость все это. Такое обычно делают только в отчетах, а там просто.
← →
SveTTT (2008-09-27 21:30) [10]
> Такое обычно делают только в отчетах, а там просто.
Это и есть результат для отчета в FR. Но как просто - не пойму. Помогите!
← →
Anatoly Podgoretsky © (2008-09-27 21:33) [11]Если предыдущее равно текущему, то не отображать.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.11.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.004 c