Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подружить 2 таблицы / 13 сообщений из 13, страница 1 из 1
15.03.2007, 09:25
    #34392092
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подружить 2 таблицы
Есть таблица, к ней по ключу (по дате ДС) джойнится другая, отношение один ко многим (в первой дата ДС одна запись, во второй Много записей)

Как сделать так, чтобы при связке в полученной таблице не появлялись повторяющиеся значения из полей первой таблицы, хотелось бы NULL
...
Рейтинг: 0 / 0
15.03.2007, 09:30
    #34392111
vkluch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подружить 2 таблицы
Используйте команду SET SKIP TO, без параметров, для обнуления множественной связи между таблицами, для таблицы, открытой в текущей рабочей области. Данная команда обнуляет только "множественную" связь; для разрыва связи типа "один-к-одному" - используется команда SET RELATION TO (без параметров), выполненная для родительской таблицы.
...
Рейтинг: 0 / 0
15.03.2007, 09:35
    #34392123
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подружить 2 таблицы
т.е. после выполнения селекта дать команду SET SKIP TO и все?
...
Рейтинг: 0 / 0
15.03.2007, 09:35
    #34392124
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подружить 2 таблицы
на таблички дайте глянуть

и напишите, что Вы желаете увидеть
...
Рейтинг: 0 / 0
15.03.2007, 09:40
    #34392142
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подружить 2 таблицы
Есть выборка с повторяющимися данными в некоторых столбцах, по-другому
> ее не построить:
>
> 01.12.05 | 39 | 8 | 333 | 777
>
> 01.01.06 | 234 | 12 | 555 | 999
>
> 01.01.06 | 24 | 8 | 555 | 999
>
> 01.02.06 | 31 | 4 | 444 | 888
>
> 01.02.06 | 18 | 2 | 444 | 888
>
>
> ..........
>
> Как ее привести к такому виду:
>
>
> 01.12.05 | 39 | 8 | 333 | 777
>
> 01.01.06 | 234 | 12 | 555 | 999
>
> 01.01.06 | 24 | 8 |  0  |     0
>
> 01.02.06 | 31 | 4 | 444 | 888
>
> 01.02.06 | 18 | 2 |   0 |     0
...
Рейтинг: 0 / 0
15.03.2007, 09:42
    #34392149
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подружить 2 таблицы
Вы сами сказали, что отношение "один ко многим". Т.е. для одной записи в первой таблице может быть несколько записей из второй таблице !!!
Что тогда вы хотите увидеть в полях первой таблице при таком JOIN ?
С уважением, Алексей
...
Рейтинг: 0 / 0
15.03.2007, 09:44
    #34392153
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подружить 2 таблицы
Первая строчка заполнена значениями из первой выборки, а для остальных в той же группе NULL
...
Рейтинг: 0 / 0
15.03.2007, 09:46
    #34392160
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подружить 2 таблицы
я Вас просил исходные нарисовать
...
Рейтинг: 0 / 0
15.03.2007, 09:48
    #34392169
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подружить 2 таблицы
Вот исходные данные:

01.12.05 | 39 | 8 | 333 | 777

01.01.06 | 234 | 12 | 555 | 999

01.01.06 | 24 | 8 | 555 | 999

01.02.06 | 31 | 4 | 444 | 888

01.02.06 | 18 | 2 | 444 | 888
...
Рейтинг: 0 / 0
15.03.2007, 10:21
    #34392283
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подружить 2 таблицы
1-я таблица
.....


2-я таблица
.....

мой селект
.....

результат
.....

а хочу результат
.....
...
Рейтинг: 0 / 0
15.03.2007, 11:41
    #34392629
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подружить 2 таблицы
_Mikle_Есть таблица, к ней по ключу (по дате ДС) джойнится другая, отношение один ко многим (в первой дата ДС одна запись, во второй Много записей)

Как сделать так, чтобы при связке в полученной таблице не появлялись повторяющиеся значения из полей первой таблицы, хотелось бы NULL
Средствами SQL - никак. Поскольку Вы невольно закладываетесь на такое понятие как "порядок следования", "предыдущая запись", "последующая запись". А таких понятий в SQL в принципе не существует.

Единственный способ - это получить выборку, а потом заменить повторы на нули путем "тупого" сканирования результата выборки. Или же вообще отказаться от Select-SQL и собирать результат "вручную".

Однако то, что Вам нужно, не обязательно делать. Все зависит от того, с какой целью Вы хотите получить такой странный результат (странный во всех смыслах). Для чего Вы хотите использовать полученный результат?

Например, если речь идет об отчетах, то там есть специальная опция, которая подавляет печать повторяющихся данных.
...
Рейтинг: 0 / 0
15.03.2007, 11:59
    #34392728
_Mikle_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подружить 2 таблицы
Да, именно для отчета, только я там никак немогу найти эту настройку...
...
Рейтинг: 0 / 0
15.03.2007, 14:27
    #34393455
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подружить 2 таблицы
_Mikle_Да, именно для отчета, только я там никак немогу найти эту настройку...
Заходите в свойства объекта - далее раздел Print When установить переключатель "Print Repeated Value" в положение "No" и, возможно, выбрать дополнительные переключатели в разделе "Also print", когда дубль сделать все-таки надо. Например, при переходе на новую страницу.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подружить 2 таблицы / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]