|
Как объединить данее из двох таблиц в одну??
|
|||
---|---|---|---|
#18+
Есть два грида (две разные таблицы). С помощью Check я выбираю необходимые даные у этих таблиц. После выбора открываю третий грид, который по идеии должен иметь данные этих двих таблиц. Но выхоидт заминка и ничего не показывает:( Например, 1-й грид: pcddl.uname, 2-й: pcdd.namet. Желаемый результат 3-й: ggg.ob=(uname+namet) Вот так это выгладет: select * from pcddl where pw=.t. into table ggg select * from pcdd where pk=.t. into table ggg sele ggg do form qel А на форме qel находится этот 3-й Grid у которого RecordSource - ggg я так понимаю нкжен програмный код объединения, но даже не знаю какие команды нужно использовать...помогите мне, пожалуйста:) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2008, 11:19 |
|
Как объединить данее из двох таблиц в одну??
|
|||
---|---|---|---|
#18+
nensiЕсть два грида (две разные таблицы). С помощью Check я выбираю необходимые даные у этих таблиц. После выбора открываю третий грид, который по идеии должен иметь данные этих двих таблиц. Но выхоидт заминка и ничего не показывает:( Например, 1-й грид: pcddl.uname, 2-й: pcdd.namet. Желаемый результат 3-й: ggg.ob=(uname+namet) Может быть попробовать так select a.*, b.* from pcddl a, pcdd b where a.pw=.t. and b.pk=.t. into table ggg должно сработать ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2008, 12:19 |
|
Как объединить данее из двох таблиц в одну??
|
|||
---|---|---|---|
#18+
я так понляла этот синтаксис к Fox5-му не подходит? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2008, 14:07 |
|
Как объединить данее из двох таблиц в одну??
|
|||
---|---|---|---|
#18+
nensiя так понляла этот синтаксис к Fox5-му не подходит? Подходит. Только надо понимать, что именно Вы делаете. Синтаксис SELECT ... INTO - не добавляет записи к существующей таблице, а создает новую таблицу. Если таблица с таким именем уже существует, то она будет просто уничтожена. В результате, в таблице ggg будут данные только из второго запроса. Вариант предложенный new_userman не вполне корректный. Это будет декартово произведение. Т.е. количество записей в выборке - это произведение количества отобранных записей из первой таблицы на количество отобранных записей из второй. Чтобы ответить на Ваш вопрос необходимо уточнить по каким правилам Вы хотите объединить информацию из таблиц. Точнее, как Вы будете сопоставлять записи. Из Вашего пояснения, что ggg.ob=(pcddl.uname+pcdd.namet) следует, что записи из этих двух таблиц как-то сопоставлены между собой. Как? Каким образом Вы определяете, что, например, первой записи из таблицы pcddl надо поставить в соответствие десятую запись из таблицы pcdd? Учтите, что условие "по порядку следования" - не является условием. По той простой причине, что для Select-SQL самого понятия "порядок следования" - не существует. Данные сопоставляются по значению каких-либо полей. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2008, 14:19 |
|
Как объединить данее из двох таблиц в одну??
|
|||
---|---|---|---|
#18+
ВладимирМ nensiя так поняла этот синтаксис к Fox5-му не подходит? Подходит. Только надо понимать, что именно Вы делаете. Я так подумала, так как видает ошибку о непризнаной команде "unrecognized command verb" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2008, 14:30 |
|
Как объединить данее из двох таблиц в одну??
|
|||
---|---|---|---|
#18+
Есть два грида (две таблици). Один: наименование и дата журналов, второй: наименование и дата газет. Я чеком выбираю нужные мне журналы и газеты в обоих гридах (и там есть Check и там). И в третем гриде должны отобразится название и журналов и газет, которые я отметила на флажке, в одном поле Grid3. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2008, 14:35 |
|
Как объединить данее из двох таблиц в одну??
|
|||
---|---|---|---|
#18+
nensiЕсть два грида (две таблици). Один: наименование и дата журналов, второй: наименование и дата газет. Я чеком выбираю нужные мне журналы и газеты в обоих гридах (и там есть Check и там). И в третем гриде должны отобразится название и журналов и газет, которые я отметила на флажке, в одном поле Grid3. При такой постановке вопроса мой первый ответ никак не подходит, я не совсем помню как это в фоксе делается(код может быть некорректный), но смысл такой insert into table ggg from (select * from pcddl where pw=.t.) insert into table ggg from (select * from pcdd where pc=.t.) Кстати ВладимирМ, спасибо за замечание ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2008, 15:22 |
|
Как объединить данее из двох таблиц в одну??
|
|||
---|---|---|---|
#18+
select * from pcddl where pw=.t. ; union all ; select * from pcdd where pk=.t. ; into cursor ggg ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2008, 16:17 |
|
Как объединить данее из двох таблиц в одну??
|
|||
---|---|---|---|
#18+
Получилось вот так: select ggg pk=.f. pw=.f. delete all select pcdd SCAN FOR pk=.t. select ggg LOCATE FOR pcdd.codcx=pcddl.cex IF !FOUND() append blank REPLACE sp WITH ALLTRIM( pcdd.namcx) ENDIF select pcddl locate FOR pcdd.codcx=pcddl.cex AND pw=.t. DO WHILE FOUND( ) select ggg REPLACE sp WITH ALLTRIM(sp)+" "+ALLTRIM(pcddl.uname) select pcddl CONTINUE ENDDO select pcdd ENDSCAN *!*set sysmenu to defaul *!*susp select ggg do form qel Спасибо ОГРОМНОЕ за вашу помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2008, 09:50 |
|
Как объединить данее из двох таблиц в одну??
|
|||
---|---|---|---|
#18+
Странный какой-то код... Код: plaintext 1.
Попробовал я прогнать ваш код - ничего не понял. pcdd.codcx неуникальны? pcddl.cex неуникальны? Зачем sp=sp+uname? при уникальных pcdd.codcx и pcddl.cex второй locate найдет не более одной записи... Вообще, у меня ваш код (при уникальных pcdd.codcx и pcddl.cex) выдал имена из отмеченных записей pcdd и к каждой из них, если есть отмеченный pcdd.codcx=pcddl.cex в таблице pcddl, дописал еще имя из pcddl. Вам это надо? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2008, 21:55 |
|
Как объединить данее из двох таблиц в одну??
|
|||
---|---|---|---|
#18+
К AndreTM: ОЧЕНЬ интересный подход, цивилизованый, я бы сказала! Намного лучше моего предыдушего!!!!!!! СПАСИБО за вашу идею! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2008, 12:09 |
|
Как объединить данее из двох таблиц в одну??
|
|||
---|---|---|---|
#18+
К AndreTMP: ...но есть одно НО! Если я не выберу значение из pcddl а такое может быть, мой код покажет читый грид-что не так пугает пользователя, а Ваш выдает ошибку "Variable "TMP" is not found" ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2008, 12:26 |
|
Как объединить данее из двох таблиц в одну??
|
|||
---|---|---|---|
#18+
nensiК AndreTMP: ...но есть одно НО! Если я не выберу значение из pcddl а такое может быть, мой код покажет читый грид-что не так пугает пользователя, а Ваш выдает ошибку "Variable "TMP" is not found" Ах, да... начал забывать про особенности массивов в Фоксе :) Надо вставить в начале кода Код: plaintext 1. 2.
Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2008, 09:26 |
|
Как объединить данее из двох таблиц в одну??
|
|||
---|---|---|---|
#18+
Опять задумался и приврал :)) Достаточно только изменить в конце: Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2008, 09:40 |
|
|
start [/forum/topic.php?fid=41&msg=35579992&tid=1587200]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
74ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 341ms |
total: | 510ms |
0 / 0 |