powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / foxpro2.6 помогите с запросом
10 сообщений из 10, страница 1 из 1
foxpro2.6 помогите с запросом
    #38565152
e674215
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем имеется БД (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
foxpro2.6 помогите с запросом
    #38565163
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
e674215,
а может быть ситуация, или 3-я всегда короче 2-й
ndk data op rot111 2012 первая строка aaaa Вторая строка bbbb Третья строка 222 2012 первая другая аааа вторая другая 333 2012 первая другая аааа вторая другая ббб ссс ддд еее
...
Рейтинг: 0 / 0
foxpro2.6 помогите с запросом
    #38565167
e674215
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может.
>>Если делать grop by на op, могут вылететь строки из rot и наоборот (так как строк может быть больше в первой или второй, обе содержат данные)
но да, я тут плохо выразился..
...
Рейтинг: 0 / 0
foxpro2.6 помогите с запросом
    #38565414
e674215Реально ли только через select получить таблицу вида

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

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

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

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

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


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