![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
обьединение таблиц [D7, Paradox]
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 не были никак связаны
то есть заполнялись соответсвенно содержимому исходных таблиц