powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / SQL?
4 сообщений из 4, страница 1 из 1
SQL?
    #32114228
Jurij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые мастера нужен совет
Есть 2 таблицы (T1 и T2) поля (kod,mesto,suma)
Надо: в таблицу T3 поля (kod,mesto,suma1, suma2) вписать неповторяущиеся записи из таблиц T1 и T2 причем если kod и mesto совпадают то suma(T1) вписывается в suma1 а suma(T2) в suma2.
В принцепе я решил ету задачку, но уж больно много команд пришлось создать- хотелось бы их свести до min.
Please F1 me!

Мое решение:
1.
INSERT into “T3” (kod,mesto,suma1)
SELECT t.kod, t.mesto,t.suma from “t1” t
WHERE not
(t.kod= (SELECT Kod from “T2” where kod=t.kod and mesto=t.mesto))
and
(t.mesto=(SELECT mesto from “T2” where kod=t.kod and mesto=t.mesto))

2.
INSERT into “T3” (kod,mesto,suma2)
SELECT t.kod, t.mesto,t.suma from “t2” t
WHERE not
(t.kod= (SELECT Kod from “T1” where kod=t.kod and mesto=t.mesto))
and
(t.mesto=(SELECT mesto from “T1” where kod=t.kod and mesto=t.mesto))

3. Потом Update и Delete записей где совпадают kod и mesto.

Пример:


таблица T1
A2|V1|10
A2|V2|12
A3|V2|14
A2|V2|15
таблица T2
A2|V1|11
A4|V2|12
A2|V2|15

1-2
таблица T3
A2|V1|10|---
A2|V1|---|11
A4|V2|---|12
A3|V2|14|---

3.
таблица T3 (результат)
A2|V1|10|11
A4|V2|---|12
A3|V2|14|---
...
Рейтинг: 0 / 0
SQL?
    #32114232
Jurij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые мастера нужен совет
Есть 2 таблицы (T1 и T2) поля (kod,mesto,suma)
Надо: в таблицу T3 поля (kod,mesto,suma1, suma2) вписать неповторяущиеся записи из таблиц T1 и T2 причем если kod и mesto совпадают то suma(T1) вписывается в suma1 а suma(T2) в suma2.
В принцепе я решил ету задачку, но уж больно много команд пришлось создать- хотелось бы их свести до min.
Please F1 me!

Мое решение:
1.
INSERT into “T3” (kod,mesto,suma1)
SELECT t.kod, t.mesto,t.suma from “t1” t
WHERE not
(t.kod= (SELECT Kod from “T2” where kod=t.kod and mesto=t.mesto))
and
(t.mesto=(SELECT mesto from “T2” where kod=t.kod and mesto=t.mesto))

2.
INSERT into “T3” (kod,mesto,suma2)
SELECT t.kod, t.mesto,t.suma from “t2” t
WHERE not
(t.kod= (SELECT Kod from “T1” where kod=t.kod and mesto=t.mesto))
and
(t.mesto=(SELECT mesto from “T1” where kod=t.kod and mesto=t.mesto))

3. Потом Update и Delete записей где совпадают kod и mesto.

Пример:


таблица T1
A2|V1|10
A2|V2|12
A3|V2|14
A2|V2|15
таблица T2
A2|V1|11
A4|V2|12
A2|V2|15

1-2
таблица T3
A2|V1|10|---
A2|V1|---|11
A4|V2|---|12
A3|V2|14|---

3.
таблица T3 (результат)
A2|V1|10|11
A4|V2|---|12
A3|V2|14|---
...
Рейтинг: 0 / 0
SQL?
    #32115201
vklepko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не подойдёт ли такой TSQL-select:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select kod,
mesto,
sum(summa1),
sum(summa2) 
from (
        select
        coalesce(t1.kod,t2.kod) as kod,
        coalesce(t1.mesto,t2.mesto) as mesto,
        isnull(t1.summa, 0 ) as summa1,
        isnull(t2.summa, 0 ) as summa2
        from t1 full outer join t2 on t1.kod = t2.kod 
                                     and t1.mesto = t2.mesto
) x group by kod, mesto having count(*) =  1 

Думаю, что можно адаптировать для нужного SQL синтаксиса
...
Рейтинг: 0 / 0
SQL?
    #32115203
vklepko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вместо COALESCE вполне подойдёт ISNULL :-)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / SQL?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]