Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SQL: проблема соединения таблиц  [new]
samuraj
Member

Откуда:
Сообщений: 33
Есть две таблицы.

Таблица1:
SELECT Расчет.id, Лекции+Семинары+Пр_Зан+Конс_тек+Конс_п_экз+Прием_экз+Прием_зач+ВРК+Пр_раб+Реценз_реф+Рук_конс+Рук_дипл+Рец_дипл+ГАК+Рук_практ+Рук_кафедрой AS Итог1
FROM Расчет;

Таблица2 - динамическая (в условии Расчет_id и Семестр_id берутся из внешнего источника):
SELECT Расчет_id, Семестр_id, Лекции+Семинары+Пр_Зан+Конс_тек+Конс_п_экз+Прием_экз+Прием_зач+ВРК+Пр_раб+Реценз_реф+Рук_конс+Рук_дипл+Рец_дипл+ГАК+Рук_практ+Рук_кафедрой AS Итог2
FROM Выполнение
WHERE Расчет_id=4 and Семестр_id=2;

Таблица1 возвращает две записи, Таблица2 возвращает 6 записей.

Мне нужно соединить эти две таблицы таким образом, чтобы вновь сформированная таблица содержала такие поля, как:

Расчет.id, Расчет.Итог1, Выполнение.Итог2
и всего должно быть строк столько, сколько в Таблица1.

Связка по полям: Расчет.id и Выполнение.Расчет_id

Теперь про условие:
WHERE Расчет_id=4 and Семестр_id=2

Переменная Расчет_id должна браться из Таблица1(Расчет.id), переменная Семестр_id вводится вручную (внешняя переменная).

Прошу помощи в осуществлении этого запроса!
31 июл 09, 10:17    [7482867]     Ответить | Цитировать Сообщить модератору
 Re: SQL: проблема соединения таблиц  [new]
LexMinsk
Member

Откуда: Republic of Belarus
Сообщений: 451
samuraj
Есть две таблицы.
Мне нужно соединить эти две таблицы таким образом, чтобы вновь сформированная таблица содержала такие поля, как:

Расчет.id, Расчет.Итог1, Выполнение.Итог2
и всего должно быть строк столько, сколько в Таблица1.

Связка по полям: Расчет.id и Выполнение.Расчет_id


используй left join
типа ...
select t2.id, t2.Итог1, t1.Итог2
from
 Таблица1 as t1
 left join
 Таблица2 as t2
 on t1.Расчет_id = t2.id
31 июл 09, 10:56    [7483177]     Ответить | Цитировать Сообщить модератору
 Re: SQL: проблема соединения таблиц  [new]
samuraj
Member

Откуда:
Сообщений: 33
И ещё. Забыл сказать.
Нужно все эти запросы объединить в один.
31 июл 09, 11:06    [7483275]     Ответить | Цитировать Сообщить модератору
 Re: SQL: проблема соединения таблиц  [new]
samuraj
Member

Откуда:
Сообщений: 33
Правильно ли я понял?
Должно получиться так?


SELECT Расчет.id, Лекции+Семинары+Пр_Зан+Конс_тек+Конс_п_экз+Прием_экз+Прием_зач+ВРК+Пр_раб+Реценз_реф+Рук_конс+Рук_дипл+Рец_дипл+ГАК+Рук_практ+Рук_кафедрой AS Итог1
FROM Расчет
UNION
SELECT Расчет_id, Семестр_id, Лекции+Семинары+Пр_Зан+Конс_тек+Конс_п_экз+Прием_экз+Прием_зач+ВРК+Пр_раб+Реценз_реф+Рук_конс+Рук_дипл+Рец_дипл+ГАК+Рук_практ+Рук_кафедрой AS Итог2
FROM Выполнение
WHERE Расчет_id=4 and Семестр_id=2

Select p.id, p.итог, в.итог
from расчет р left outer join выполнение в on (р.id = в.расчет_id and в.Расчет_id=4 and в.Семестр_id=2);
31 июл 09, 11:19    [7483387]     Ответить | Цитировать Сообщить модератору
 Re: SQL: проблема соединения таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
Так

Select p.id, p.итог, в.итог
from расчет р left outer join выполнение в on (р.id = в.расчет_id and в.Расчет_id=4 and в.Семестр_id=2);
31 июл 09, 11:21    [7483403]     Ответить | Цитировать Сообщить модератору
 Re: SQL: проблема соединения таблиц  [new]
samuraj
Member

Откуда:
Сообщений: 33
Немного уточню.
Мне нужно составить запрос, который включает два запроса на обработку двух таблиц, и запрос на выборку.
Т.к. Таблица1 и Таблица2 строятся в программе через два ADOQuery.
Поэтому и задал такой вопрос.
Можно ли как-нибудь сделать объединение всех этих запросов в один, или никак?
31 июл 09, 11:29    [7483450]     Ответить | Цитировать Сообщить модератору
 Re: SQL: проблема соединения таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
select t2.id, t2.Итог1, t1.Итог2
from
 (select <здесь какой-то ваш запрос>) as t1
 left join
 (select <здесь тоже какой-то ваш запрос>) as t2
 on t1.Расчет_id = t2.id
31 июл 09, 11:32    [7483466]     Ответить | Цитировать Сообщить модератору
 Re: SQL: проблема соединения таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
А кросспостинг - это плохо
31 июл 09, 11:33    [7483471]     Ответить | Цитировать Сообщить модератору
 Re: SQL: проблема соединения таблиц  [new]
samuraj
Member

Откуда:
Сообщений: 33
Типа так?

select t2.id, t2.Итог1, t1.Итог2
from
(SELECT Расчет.id, Лекции+Семинары+Пр_Зан+Конс_тек+Конс_п_экз+Прием_экз+Прием_зач+ВРК+Пр_раб+Реценз_реф+Рук_конс+Рук_дипл+Рец_дипл+ГАК+Рук_практ+Рук_кафедрой AS Итог1
FROM Расчет) as t1
left join
(SELECT Расчет_id, Семестр_id, Лекции+Семинары+Пр_Зан+Конс_тек+Конс_п_экз+Прием_экз+Прием_зач+ВРК+Пр_раб+Реценз_реф+Рук_конс+Рук_дипл+Рец_дипл+ГАК+Рук_практ+Рук_кафедрой AS Итог2
FROM Выполнение
WHERE Расчет_id=4 and Семестр_id=2) as t2
on t1.Расчет_id = t2.id;
31 июл 09, 11:57    [7483677]     Ответить | Цитировать Сообщить модератору
 Re: SQL: проблема соединения таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
А этот вариант чем то отличается от

Select p.id, p.итог, в.итог
from расчет р left outer join выполнение в on (р.id = в.расчет_id and в.Расчет_id=4 and в.Семестр_id=2);
31 июл 09, 11:59    [7483696]     Ответить | Цитировать Сообщить модератору
 Re: SQL: проблема соединения таблиц  [new]
samuraj
Member

Откуда:
Сообщений: 33
Ну хорошо. Просто так сдаваться я не буду :) Ловите файлы. 1. Исходная таблица "Выполнение"
Модератор: Вложение удалено.


Сообщение было отредактировано: 31 июл 09, 12:08
31 июл 09, 12:06    [7483742]     Ответить | Цитировать Сообщить модератору
 Re: SQL: проблема соединения таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
samuraj
Ну хорошо. Просто так сдаваться я не буду :)

Ловите файлы.

1. Исходная таблица "Выполнение"

Модератор: Вложение удалено.


https://www.sql.ru/forum/actualthread.aspx?tid=127456 п.4 и п.6
31 июл 09, 12:08    [7483757]     Ответить | Цитировать Сообщить модератору
 Re: SQL: проблема соединения таблиц  [new]
samuraj
Member

Откуда:
Сообщений: 33
2. Таже таблица после запроса:
SELECT Выполнение.Расчет_id, Выполнение.Семестр_id, Лекции+Семинары+Пр_Зан+Конс_тек+Конс_п_экз+Прием_экз+Прием_зач+ВРК+Пр_раб+Реценз_реф+Рук_конс+Рук_дипл+Рец_дипл+ГАК+Рук_практ+Рук_кафедрой AS Итог2
FROM Выполнение;
Здесь опущен оператор WHERE
Модератор: Вложение удалено.


Сообщение было отредактировано: 31 июл 09, 12:12
31 июл 09, 12:08    [7483759]     Ответить | Цитировать Сообщить модератору
 Re: SQL: проблема соединения таблиц  [new]
Konst_One
Member

Откуда:
Сообщений: 11514
вам в другой форум : Microsoft Access
31 июл 09, 12:12    [7483791]     Ответить | Цитировать Сообщить модератору
 Re: SQL: проблема соединения таблиц  [new]
samuraj
Member

Откуда:
Сообщений: 33
Всё.
Разобрался.
Пришлось оформлять через массив.
31 июл 09, 13:53    [7484572]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить