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

Вниз

Как избавиться от дублирования (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
4-1199910118
=BuckLr=
2008-01-09 23:21
2008.11.09
Bidi mode средствами API


2-1222762898
neon-w
2008-09-30 12:21
2008.11.09
NAN????


11-1185310854
Dy1
2007-07-25 01:00
2008.11.09
MHFontDialog


2-1222836281
AlekseyB
2008-10-01 08:44
2008.11.09
CheckListBox


4-1199736674
Compiler
2008-01-07 23:11
2008.11.09
Rect текста