Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / foxpro2.6 помогите с запросом / 10 сообщений из 10, страница 1 из 1
18.02.2014, 20:21
    #38565152
e674215
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro2.6 помогите с запросом
В общем имеется БД (dbf) , простые запросы на отдельные таблицы не проблема, наигрался. Но столкнулся с такой проблемой:
Есть к примеру 3 таблицы:
Pkeyndkdata1 111 20122 222 2012

Pkey op1 первая строка1 вторая строка1 третья2 первая другая2 вторая другая

Pkey rot1 aaaa1 bbbb2 aaaa

Объединял через where по Pkey (a.Pkey=b.Pkey and a.Pkey=c.Pkey)
Получаем ясно дело совсем не то что надо.

Если делать grop by на op, могут вылететь строки из rot и наоборот (так как строк может быть больше в первой или второй, обе содержат данные)

Реально ли только через select получить таблицу вида

ndk data op rot111 2012 первая строка aaaaВторая строка bbbbТретья строка2222012первая другаяаааа вторая другая
Надо именно с пустыми строками.
Игрался с JOIN но как то слишком медленно после запросов через select (оно и ясно почему), поэтому хотелось бы обойтись только запросами с подзапросами. Может подскажет кто?
...
Рейтинг: 0 / 0
18.02.2014, 20:37
    #38565163
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro2.6 помогите с запросом
e674215,
а может быть ситуация, или 3-я всегда короче 2-й
ndk data op rot111 2012 первая строка aaaa Вторая строка bbbb Третья строка 222 2012 первая другая аааа вторая другая 333 2012 первая другая аааа вторая другая ббб ссс ддд еее
...
Рейтинг: 0 / 0
18.02.2014, 20:41
    #38565167
e674215
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro2.6 помогите с запросом
может.
>>Если делать grop by на op, могут вылететь строки из rot и наоборот (так как строк может быть больше в первой или второй, обе содержат данные)
но да, я тут плохо выразился..
...
Рейтинг: 0 / 0
19.02.2014, 07:16
    #38565414
foxpro2.6 помогите с запросом
e674215Реально ли только через select получить таблицу вида

ndk data op rot111 2012 первая строка aaaaВторая строка bbbbТретья строка2222012первая другаяаааа вторая другая
Надо именно с пустыми строками.
Игрался с JOIN но как то слишком медленно после запросов через select (оно и ясно почему), поэтому хотелось бы обойтись только запросами с подзапросами. Может подскажет кто?
Нет нельзя. Попробуйте просто подумать и поймете почему...
Подсказка: только по ключу pkey нельзя однозначно определить к какой строке (первой, второй или третьей) относятся записи из других связанных таблиц.
...
Рейтинг: 0 / 0
19.02.2014, 07:39
    #38565423
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro2.6 помогите с запросом
e674215Реально ли только через select получить таблицу вида
ndk data op rot111 2012 первая строка aaaaВторая строка bbbbТретья строка2222012первая другаяаааа вторая другая
Надо именно с пустыми строками.
Если только через одно место извернуться.

Обычно делают такую выборку
ndk data op rot111 2012 первая строка aaaa111 2012Вторая строка bbbb111 2012Третья строка2222012первая другаяаааа2222012 вторая другая
а при выводе проверяют что текущее значение равно предыдущему и текущее не выводят.
...
Рейтинг: 0 / 0
19.02.2014, 08:23
    #38565444
e674215
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro2.6 помогите с запросом
Станислав С...кий, я примерно так и думал; нотрешил спросить. перед глазами есть просто софт который подобноетделает, но онболее универсальный. а надо сделать небольшую программку под конкретную задачу, так как довольно часто такой запрос нужно а руками набивать медленно.

Dima T, данный вариант у меня получался только с первыми 3мя полями, когда добавлял rot то в нем думали уже не друг за другом, и их Просто проверкой текущий/предидущий не выкусить( если подскажете как можно получить ваш вариант было бы хорошо)
...
Рейтинг: 0 / 0
19.02.2014, 17:22
    #38566555
e674215
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro2.6 помогите с запросом
еще помучал. покопался во временных файлах программы, посмотрел как она делает данную задачу. вообщем с селект слишком муторно и похоже не реально).
в общем запросом основным нахожу все нужные мне pkey, затем перебирая их нахожу нужные значения через seek() в во всех таблицах, ориентируясь на возвращаемое значение решаю, что печатать в выходной файл что нет.
всем кто откликнулся - спасибо за уделеное время)
...
Рейтинг: 0 / 0
20.02.2014, 11:02
    #38567187
foxpro2.6 помогите с запросом
e674215еще помучал. покопался во временных файлах программы, посмотрел как она делает данную задачу. вообщем с селект слишком муторно и похоже не реально).
Конечно. Select - это как таблица умножения. Можно, конечно, получить одинаковые результаты при сложении и умножении, но не всегда... Например, при умножении целых чисел вы никогда 3 не получите, но при сложении - пожалуйста.

e674215в общем запросом основным нахожу все нужные мне pkey, затем перебирая их нахожу нужные значения через seek() в во всех таблицах, ориентируясь на возвращаемое значение решаю, что печатать в выходной файл что нет.
И все-таки, объясните, пожалуйста, как на основании только pkey узнать, что к "первая строка" должен быть прикреплен только "аааа", а к "вторая строка" только "bbbb"....

e674215всем кто откликнулся - спасибо за уделеное время)
Всегда пожалуйста, обращайтесь...
...
Рейтинг: 0 / 0
20.02.2014, 11:21
    #38567221
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro2.6 помогите с запросом
Станислав С...кийНапример, при умножении целых чисел вы никогда 3 не получитеКакое из чисел 1 и 3 не является целым?
...
Рейтинг: 0 / 0
20.02.2014, 13:02
    #38567404
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foxpro2.6 помогите с запросом
tanglirСтанислав С...кийНапример, при умножении целых чисел вы никогда 3 не получитеКакое из чисел 1 и 3 не является целым?
Ну ошибся чуть чуть...
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / foxpro2.6 помогите с запросом / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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