|
foxpro2.6 помогите с запросом
|
|||
---|---|---|---|
#18+
В общем имеется БД (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 (оно и ясно почему), поэтому хотелось бы обойтись только запросами с подзапросами. Может подскажет кто? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2014, 20:21 |
|
foxpro2.6 помогите с запросом
|
|||
---|---|---|---|
#18+
e674215, а может быть ситуация, или 3-я всегда короче 2-й ndk data op rot111 2012 первая строка aaaa Вторая строка bbbb Третья строка 222 2012 первая другая аааа вторая другая 333 2012 первая другая аааа вторая другая ббб ссс ддд еее ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2014, 20:37 |
|
foxpro2.6 помогите с запросом
|
|||
---|---|---|---|
#18+
может. >>Если делать grop by на op, могут вылететь строки из rot и наоборот (так как строк может быть больше в первой или второй, обе содержат данные) но да, я тут плохо выразился.. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2014, 20:41 |
|
foxpro2.6 помогите с запросом
|
|||
---|---|---|---|
#18+
e674215Реально ли только через select получить таблицу вида ndk data op rot111 2012 первая строка aaaaВторая строка bbbbТретья строка2222012первая другаяаааа вторая другая Надо именно с пустыми строками. Игрался с JOIN но как то слишком медленно после запросов через select (оно и ясно почему), поэтому хотелось бы обойтись только запросами с подзапросами. Может подскажет кто? Нет нельзя. Попробуйте просто подумать и поймете почему... Подсказка: только по ключу pkey нельзя однозначно определить к какой строке (первой, второй или третьей) относятся записи из других связанных таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2014, 07:16 |
|
foxpro2.6 помогите с запросом
|
|||
---|---|---|---|
#18+
e674215Реально ли только через select получить таблицу вида ndk data op rot111 2012 первая строка aaaaВторая строка bbbbТретья строка2222012первая другаяаааа вторая другая Надо именно с пустыми строками. Если только через одно место извернуться. Обычно делают такую выборку ndk data op rot111 2012 первая строка aaaa111 2012Вторая строка bbbb111 2012Третья строка2222012первая другаяаааа2222012 вторая другая а при выводе проверяют что текущее значение равно предыдущему и текущее не выводят. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2014, 07:39 |
|
foxpro2.6 помогите с запросом
|
|||
---|---|---|---|
#18+
Станислав С...кий, я примерно так и думал; нотрешил спросить. перед глазами есть просто софт который подобноетделает, но онболее универсальный. а надо сделать небольшую программку под конкретную задачу, так как довольно часто такой запрос нужно а руками набивать медленно. Dima T, данный вариант у меня получался только с первыми 3мя полями, когда добавлял rot то в нем думали уже не друг за другом, и их Просто проверкой текущий/предидущий не выкусить( если подскажете как можно получить ваш вариант было бы хорошо) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2014, 08:23 |
|
foxpro2.6 помогите с запросом
|
|||
---|---|---|---|
#18+
еще помучал. покопался во временных файлах программы, посмотрел как она делает данную задачу. вообщем с селект слишком муторно и похоже не реально). в общем запросом основным нахожу все нужные мне pkey, затем перебирая их нахожу нужные значения через seek() в во всех таблицах, ориентируясь на возвращаемое значение решаю, что печатать в выходной файл что нет. всем кто откликнулся - спасибо за уделеное время) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2014, 17:22 |
|
foxpro2.6 помогите с запросом
|
|||
---|---|---|---|
#18+
e674215еще помучал. покопался во временных файлах программы, посмотрел как она делает данную задачу. вообщем с селект слишком муторно и похоже не реально). Конечно. Select - это как таблица умножения. Можно, конечно, получить одинаковые результаты при сложении и умножении, но не всегда... Например, при умножении целых чисел вы никогда 3 не получите, но при сложении - пожалуйста. e674215в общем запросом основным нахожу все нужные мне pkey, затем перебирая их нахожу нужные значения через seek() в во всех таблицах, ориентируясь на возвращаемое значение решаю, что печатать в выходной файл что нет. И все-таки, объясните, пожалуйста, как на основании только pkey узнать, что к "первая строка" должен быть прикреплен только "аааа", а к "вторая строка" только "bbbb".... e674215всем кто откликнулся - спасибо за уделеное время) Всегда пожалуйста, обращайтесь... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2014, 11:02 |
|
foxpro2.6 помогите с запросом
|
|||
---|---|---|---|
#18+
Станислав С...кийНапример, при умножении целых чисел вы никогда 3 не получитеКакое из чисел 1 и 3 не является целым? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2014, 11:21 |
|
|
start [/forum/topic.php?fid=41&fpage=34&tid=1582726]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 149ms |
0 / 0 |