Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

обьединение таблиц [D7, Paradox]


Страницы:   1 2

uu ©   (2003-10-13 13:10:00) 

Подскажите возможноли sql запросом выбрать из
2ух таблиц по 2 колонки и врезультате получить 3 таблицу с 4я колонками
но так чтобы не было декартового произведения таблиц

например
SELECT Prihod.PrhSumm, Prihod.PrhKlient, Rashod.RzSumm, Rashod.RzKlient
FROM Prihod, Rashod

дает декартово произведение


Vlad   (2003-10-13 15:45:00) [1]

Впринципе можно сделать 2 отдельных DataSet"a и результат из обоих в цикле поместить в ClientDataSet.


MsGuns   (2003-10-13 15:32:00) [2]

>Bob © (13.10.03 14:11) [15]
>UNION не поможет однозначно, т.к. выдаст простыню в две колонки, а не в четыре.

Колонок будет 4, а записей N+M, а надо MAX(N,M). Т.е. надо как бы слить по паре колонок из двух таблиц в одну. А вместо UNION можно и так:

SELECT C.cid, C.cname, P.pid, P.pname
FROM CST C FULL OUTER JOIN PRO P ON C.cname=P.pname


А вот получить то, что надо по сабжу пока не соображу как ;((


DenK_vrtz   (2003-10-13 15:31:00) [3]

>и как быть?

пиво пить и типы приводить


uu   (2003-10-13 15:27:00) [4]

и как быть?
у меня не однотипные сумма - числовой
а клиент - строка


Vlad   (2003-10-13 15:06:00) [5]

>uu © (13.10.03 15:00) [19]
Поля д.б. однотипные в обоих селектах.


uu   (2003-10-13 15:00:00) [6]

Наталья, в Вашем примере
Type mismatch in expression.


MsGuns   (2003-10-13 14:19:00) [7]

select T1.F1 as FU1, T1.F2 as FU2, T2.F1 as FU3, T2.F2 as FU4
from Table1 T1 FULL OUTER JOIN Table2 ON T1.F1=T2.F1
order by ...

(поля F1 в примере однотипные)


DenK_vrtz   (2003-10-13 14:15:00) [8]

>>надо вывести на один репорт колонки из двух НД

так какие проблемы?!
Делаешь два независимых запроса.
Если это QR, то указываешь в свойстве DataSet отчета тот DataSet, у которого записей больше(думаю, объяснять не надо почему!).
А дальше как обычно - через QRDBText"ы.

Или все в Excel!


Наталия   (2003-10-13 14:12:00) [9]

SELECT Prihod.PrhSumm, Prihod.PrhKlient, 0, 0
from Prihod
union all
select 0, 0, Rashod.RzSumm, Rashod.RzKlient
FROM Rashod


Bob   (2003-10-13 14:11:00) [10]

UNION не поможет однозначно, т.к. выдаст простыню в две колонки, а не в четыре.


Vlad   (2003-10-13 14:02:00) [11]

>Наталия © (13.10.03 14:01) [13]
Что-то никак не соображу, а union каким образом автору поможет ?


Наталия   (2003-10-13 14:01:00) [12]

uu © (13.10.03 13:59) [11]
Документацию почитай по SQL, наконец.


Vlad   (2003-10-13 14:00:00) [13]

нет в парадоксе OUTER.
Тем более, что все равно с помощью него ты получишь произведение множеств.
А то, что ты хочешь, одним SQL запросом реализовать нельзя.


uu   (2003-10-13 13:59:00) [14]

ясн OUTTER :)
но не пормогает :(
а что такое union?


uu   (2003-10-13 13:57:00) [15]

на OUTER ругается


Наталия   (2003-10-13 13:56:00) [16]

Может быть, union тебе поможет?


uu   (2003-10-13 13:56:00) [17]

а что такое OUTER JOIN?
можно пример?


Bob   (2003-10-13 13:39:00) [18]

Ну если надо так надо. Попробуй конечно свой запрос, посмотри,что получиться. Если то что надо - поздравляю, если нет - придется тебе вязать это все.


MsGuns   (2003-10-13 13:37:00) [19]

Связка OUTER JOIN


uu   (2003-10-13 13:32:00) [20]

нет помойки как раз не надо!
надо вывести на один репорт колонки из двух НД
для этого и требуется получить единую таблицу из 4 колонок
но чтобы первые 2 колонки и последние 2 не были никак связаны
то есть заполнялись соответсвенно содержимому исходных таблиц


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо