powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Скложить таблицы
16 сообщений из 16, страница 1 из 1
Скложить таблицы
    #37277979
ilovemylol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заранее извиняюсь если такая тема была, однако я честно искал но не нашел :(

Есть 3ри одинаковые sql таблицы. Вида продукт, количество.
Нужно из таблицы 1, вычесть количество из таблицы 2 и положить в таблицу 3.

Что-то нет никаких идей как это сделать :(
P.S. Если можно напишите пожалуйста для asp.net.
...
Рейтинг: 0 / 0
Скложить таблицы
    #37278038
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilovemylolЕсть 3ри одинаковые sql таблицы.Это тренд .
Вида продукт, количество.
Нужно из таблицы 1, вычесть количество из таблицы 2 и положить в таблицу 3.
Если "вида продукт" в каждой из таблиц не повторяются, то
Код: plaintext
1.
2.
3.
4.
insert into t3 ([вида продукт], Qty) 
select  case when t1.[вида продукт] is null then t2.[вида продукт] else t1.[вида продукт] end,
isnull(t1.qty, 0 ) - isnull(t2.qty, 0 )
from t1
full outer join t2 on t2.[вида продукт] = t1.[вида продукт]
...
Рейтинг: 0 / 0
Скложить таблицы
    #37278089
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

постебался над сокращением тройки круто, а дальше сам родил то же самое

Код: plaintext
case when t1.[вида продукт] is null then t2.[вида продукт] else t1.[вида продукт] end
эквивалентно
Код: plaintext
isnull(t1.[вида продукт],t2.[вида продукт])
ладно бы забыл про isnull, но ниже ты ее употребляешь для тех же целей

давно хотел тебя спросить, почему джа меня больше не любит?
...
Рейтинг: 0 / 0
Скложить таблицы
    #37278176
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ilovemylol,
Код: plaintext
1.
2.
3.
4.
5.
insert into таблица3(продукт,количество)
select продукт, sum(количество)
from (select продукт, количество from таблица1
        union all
      select продукт, -количество from таблица2) 
group by продукт;
...
Рейтинг: 0 / 0
Скложить таблицы
    #37278208
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
insert into таблица3(продукт,количество)
select продукт, sum(количество)
from (select продукт, количество from таблица1
        union all
      select продукт, -количество AS количество from таблица2) 
group by продукт
...
Рейтинг: 0 / 0
Скложить таблицы
    #37278219
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
неужели asp без As не обработает такой простой запрос?
...
Рейтинг: 0 / 0
Скложить таблицы
    #37278231
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища,

во втором запросе в подзапросе название поля не определено, фиг его знает, как поведет себя вышестоящий запрос при попытке Sum() несуществующего поля, в этом деле лучше четко прописать
...
Рейтинг: 0 / 0
Скложить таблицы
    #37278252
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
известно как поведёт - при использовании UNION названия полей всегда берутся из первой "части". В остальных "частях" поля могут называться как угодно.
...
Рейтинг: 0 / 0
Скложить таблицы
    #37278329
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProAntonariy,

постебался над сокращением тройки круто, а дальше сам родил то же самое В tsql мой моск не настолько гибок, иначе бы родил запрос скукотищи :)
...
Рейтинг: 0 / 0
Скложить таблицы
    #37278367
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyВ tsql мой моск не настолько гибок, иначе бы родил запрос скукотищи :)
если бы я решал эту задачу раньше тебя, тоже бы написал запрос скукотищи. а так - даже в голову не пришло, начал придирками заниматься
...
Рейтинг: 0 / 0
Скложить таблицы
    #37279933
ilovemylol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Больше спасибо за ответы ! Я болван заранее не подумав попросил немного не то:( Как сделать апдейт 3ей таблицы а не селект ?
...
Рейтинг: 0 / 0
Скложить таблицы
    #37279963
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ilovemylol,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
update таблица3 As T 
  inner join
(select продукт, sum(количество) As кол_во
from (select продукт, количество from таблица1
        union all
      select продукт, -количество from таблица2) 
group by продукт) as S
  on Z.продукт=T.продукт
set T.количество=S.кол_во;
...
Рейтинг: 0 / 0
Скложить таблицы
    #37279972
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
опечатка в условии соединения, надо так:
Код: plaintext
1.
2.
group by продукт) as S
  on S.продукт=T.продукт
...
Рейтинг: 0 / 0
Скложить таблицы
    #37279989
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilovemylolБольше спасибо за ответы ! Я болван заранее не подумав попросил немного не то:( Как сделать апдейт 3ей таблицы а не селект ?
если не ошибся...
Код: plaintext
1.
2.
3.
4.
5.
6.
update таблица3 set количество=t.количество
from таблица3
inner join (select продукт, sum(количество) AS количество
            from (select продукт, количество from таблица1
                  union all
                  select продукт, -количество from таблица2)) 
                  group by продукт) AS t ON таблица3.продукт=t.продукт
...
Рейтинг: 0 / 0
Скложить таблицы
    #37279992
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не успел ))
...
Рейтинг: 0 / 0
Скложить таблицы
    #37280001
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proесли не ошибся...
скобка лишняя
Код: plaintext
1.
2.
3.
4.
5.
6.
update таблица3 set количество=t.количество
from таблица3
inner join (select продукт, sum(количество) AS количество
            from (select продукт, количество from таблица1
                  union all
                  select продукт, -количество from таблица2) 
                  group by продукт) AS t ON таблица3.продукт=t.продукт
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Скложить таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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