Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
в 165 отчетов есть пример как 2 отчета поместить в один. Там предлогается создать таблицу, в которой был бы признак GroupID. Когда в этом поле скажем 1, значит это первая таблица, когда 2, значит слкдующая. Далее в репорт дизайнере все это описывается через PrintWhen. А я не знаю как мне объеденить мои таблицы, да еще и так чтоб появилось несуществубщее в обеих таблицах поле GroupID, да при этом оно еще и заполнялось 1ами или 2ками. Подскажите, плиз... ЗЫ 8 версия ВФП. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. возможно мне всего лишь надо добавить LEFT JOIN Otherpay ON Otherpay.abonent = AbonPay.abonent ; ? а как тогда быть с Otherpay.abonent? или что-то такое будет правильно Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. тока как быть здесь с GroupID и его заполнением? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 16:24 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
И снова привет, Стас-Ко! Короче, делай так: Select 1 as GroupID,список полей из первой таблицы ; FROM первая таблица и всякие там Inner, left, Where Order и т.д. ; Union ALL ( Select 2 as GroupID,список полей из второй таблицы ; FROM вторая таблица и всякие там Inner, left, Where Order и т.д. ) Into Cursor curDetailPrn ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 16:34 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
Да и еще, когда используешь Union, то обязательно список полей из первой таблици по формату и порядку следования должен соответсвовать списку полей из второй таблицы. И может подскажешь мне, в порядке обмена опытом, как вы там вставляете фрагментики кода, так чтобы все было красиво написано с табуляцией и т.д.? А то у меня получается вставка обыкновенного текста и все очень не читабельно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 16:37 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
ага, спасибо, ща буду пробывать. тока я боюсь что это больно похоже на вложенные запросы, а они не проходят в 8 версии. Я еще и сам не все вкурил. Но. Красиво втулить код проги это просто - когда месагу мылишь там есть смайлики, затем Тема, заетем B I U и т.д. дык вот SRC - это для кода. А вот для чего точка, FIX, QUOTE, 1,2,3,4,5, SUP, CSV я еще и сам не знаю :( догадываюсь только что QUOTE - это цитировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 16:48 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
Спасибо - далее попробую быть нагляднее... А что касается вложенных запросов, то это они и есть, просто я не знал, что в восьмерке они не проходят, я то пока на ВФП5.0 сижу, только только собираюсь перейти на 8.0. Так что извиняйте! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 16:52 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
UNION это не вложенный запрос, так что в скобки его можно не брать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 16:54 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
Означает ли это, что в восьмерке все будет ОК с вопросом, который задавал Стас-Ко? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 16:55 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
и по ходу еще вопрос, я его тут задавал, но толком никто не ответил, не знаешь как мона замутить печать отчета только Четных страниц, или только нечетных, или по заданому маршруту, типа 1,5,10,16,43 - как, например, это реализовано в ворде. дело в том, что так очень удобно печатать двухсторонние документы - сначала даешь Четные страницы, затем переворачиваешь и нечетные. иначе каждый листок по ходу печати надо самому вертеть, а это черевато не только минингитом, но и глюками принтера - не любит он когда у него каждую страницу бамага кончается, а потом появляеЦЦа, он тогда уходит в даун и чепятатет бред всякий и очень долго, потому как там часто встречаются управляющие последовательности, типа выплюнь лист, возьми следующий... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 16:56 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
kms_Означает ли это, что в восьмерке все будет ОК с вопросом, который задавал Стас-Ко? "Усе будет ОК" (с) Бриллиантовая рука ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 16:59 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
CTAC-KOи по ходу еще вопрос, я его тут задавал, но толком никто не ответил, не знаешь как мона замутить печать отчета только Четных страниц, или только нечетных, или по заданому маршруту, типа 1,5,10,16,43 - как, например, это реализовано в ворде. дело в том, что так очень удобно печатать двухсторонние документы - сначала даешь Четные страницы, затем переворачиваешь и нечетные. иначе каждый листок по ходу печати надо самому вертеть, а это черевато не только минингитом, но и глюками принтера - не любит он когда у него каждую страницу бамага кончается, а потом появляеЦЦа, он тогда уходит в даун и чепятатет бред всякий и очень долго, потому как там часто встречаются управляющие последовательности, типа выплюнь лист, возьми следующий... Точно не скажу, проблемы такой не стояло. Но думаю примерно так (правда геморойный это процесс): 1. Первый прогон в пустышку, чтобы узнать количество страниц 2. Два вложенных цикла. Первый от 1 до 2, второй по количеству страниц, проверкой номера страницы на четность/нечетность, вывод отчета с опцией RANGE, где указать номер страницы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 17:04 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
ПРИНТЕР С ДУСТОРОННЕЙ ПЕЧАТЬЮ - вот решение вопроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 17:17 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
вот какую байду я накатал Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. теперь не знаю куда вставить ORDER BY AbonPay.abonent и результат меня несколько удивил получилось так как я и хотел, но одна загвоздка, на протяжении всего ReportID=1 слева у меня в таблице все пучтом, а справа все забито первой записью из второй таблицы, оно бы ничего, но потом, когда ReportID становится равным 2, эту запись я пропущу, т.к. далее у меня все идет со следующей записи, а слева уже повторяется последняя запись из первой таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 17:18 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
Если я правильно понимаю, то в первом запросе ты используешь данные из таблиц: AbonPay OtherPay Abonents так вот связь между AbonPay и Abonents ты устанавливаешь: Код: plaintext Проверь думаю, что проблема с этим и связана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 17:26 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
все нормально, я не доглядел просто. когда ReportID=1 справа все забито первой попавшейся записью, а когда ReportID=2, то слева - последней в таблице. Вообще мог бы и NONE проставить, или это я ему об этом сказать должен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 17:27 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
[quot kms_]Если я правильно понимаю, то в первом запросе ты используешь данные из таблиц: AbonPay OtherPay Abonents так вот связь между AbonPay и Abonents ты устанавливаешь: Код: plaintext [quot] Не, сначала AbonPay и Abonents, а затем уже OtherPay. куда мне ордер вставлять - прога его не ест никак? по хелпам написано что в конце он должен быть, а если так и сделать то во время исполнения ругается что Order Clause is invalid... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 17:32 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
В конце ORDER BY 2. Двойка - номер поля в запросе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 17:35 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
СТАС-КОНе, сначала AbonPay и Abonents, а затем уже OtherPay. Когда я писал предыдущее сообщение я не имел ввиду порядок следования таблиц в запросе, я имел ввиду, что таблица OtherPay в запросе ни с какой другой не связана, то есть нет критерия по которому бы определялась какая запись из таблицы OtherPay соотвествует записи из таблицы AbonPay... то есть, как мне кажется, должно быть нечто подобное: Код: plaintext 1. 2. 3. то есть, я считаю, что проблема связана с отсутствием этой самой связи, которую я сейчас указал последней, а во втором запросе вообще связи не устанавливаются между таблицами. Хотя я допускаю, что не до конца владею ситуацией и может что-то недопонимаю. А что касается Order, то у меня все работает, причем как внутри каждого запроса в отдельности, так Order обоих запросов вместе, в зависимости от ситуации, однако следует отметить, что скобки с Union я все же использую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 17:45 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
А мне, понимаешь, надо так соеденить таблицы, чтобы как бы шахмоткой выглядело. То есть, сначала идет левый блок свзязанные таблицы AbonPay и Abonents, все по условию для одного ab_code=ChosenAbCode; правый блок пустой. Затем следует выборка из Otherpay по тому же условию для одного ab_code=ChosenAbCode, только здесь уже левый блок пустой, а правый заполненный. Суть в том, что это две РАЗНЫЕ таблицы, просто для репорта надо чтоб они шли подряд в одной, только по ReportID можно расчехлить где какая. Прикол разности таблиц в том, что в первом куске записи с одним и тем же значением abonent не повторяются, а в Otherpay могут повторяться. Поэтому когда объеденяешь не шахматкой, как у меня и получилось, а все в один как бы блок, то выходит что некотрые записи повторяются, благодаря Otherpay. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 18:40 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
проще всего объясню так - есть таблицы А и Б, надо получить В так чтобы было в нем такое расположение: А Б а не АБ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 18:43 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
А, ну тогда понятно, а то я пристал к человеку нет связи - нет связи. P.S. И как вставить этот чертов смайлик прямо в текст? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2005, 18:46 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
да хрен его знает как смайло вставить это просто типа для пунктов Код: plaintext 1. 2. 3. 4. 5. 1,2,3,4,5 для задания размеров размер1 размер2 размер3 размер4 размер5 кто такой SUP и зачем он нужен - так и не понятно а это текст в CSV так выглядит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 14:18 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
Эт и я методом научного тыканья определил, а вот смайлы этому методу познания не поддаются, блин....... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 16:33 |
|
||
|
SQL Select как объеденить 2 разные таблицы
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2005, 16:38 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32919416&tid=1594832]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 324ms |

| 0 / 0 |
