powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите разобраться в SQL
13 сообщений из 13, страница 1 из 1
Помогите разобраться в SQL
    #39624417
SMART_001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Есть 2 таблица в SQL SERVERе. Я их объединил(UNION ALL). Теперь как получить как на картинке(Результат)
...
Рейтинг: 0 / 0
Помогите разобраться в SQL
    #39624419
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SMART_001,

Код: sql
1.
2.
3.
(Select t1,summa1,0 as summa2,y1 from table_1)
Union all 
(Select t2,0 as summa1,summa2,y2 from table_2)
...
Рейтинг: 0 / 0
Помогите разобраться в SQL
    #39624422
SMART_001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kopelly,

Спасибо!
...
Рейтинг: 0 / 0
Помогите разобраться в SQL
    #39624423
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
Select TV1 AS TV, summa1, 0 as summa2, y1 AS Y from table_1
Union all 
Select TV2 AS TV, 0 as summa1, summa2, y2 AS Y from table_2



Но работать будет только, если тип " 0 as summa2" будет тем же, что и "summa1"
...
Рейтинг: 0 / 0
Помогите разобраться в SQL
    #39624429
SMART_001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183,

Спасибо, получается,


Select ab4.TV as TV, ab4.SM as SM, ab4.Y as Y

FROM

(Select TV1 AS TV, SUM(summa1) as SM1, 0 as SM2, y1 AS Y from table_1
Union all
Select TV2 AS TV, 0 as SM1, SUM(summa2) as SM2, y2 AS Y from table_2) ab4
...
Рейтинг: 0 / 0
Помогите разобраться в SQL
    #39624431
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В крайнем случае если будут не целые числа
summa1, 0*summa1 as summa2
0*summa2 as summa1, summa2
...
Рейтинг: 0 / 0
Помогите разобраться в SQL
    #39624437
SMART_001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183,

Почему 0 надо умножать


Select ab4.TV as TV, ab4.SM1 as SM1,ab4.SM2 as SM2, ab4.Y as Y

FROM

(Select TV1 AS TV, SUM(summa1) as SM1, 0*summa1 as SM2, y1 AS Y from table_1
Union all
Select TV2 AS TV, 0*summa2 as SM1, SUM(summa2) as SM2, y2 AS Y from table_2) ab4

group by ab4.TV

order by 1 asc
...
Рейтинг: 0 / 0
Помогите разобраться в SQL
    #39624440
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0 as - тип получится скорее всего INT
0*summa1/2 as - тип получится скорее всего тот же, что и у summa1/2

Если summa1/2 с типом FLOAT, то UNION ALL может и не сработать
...
Рейтинг: 0 / 0
Помогите разобраться в SQL
    #39624528
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183тип получится скорее всего982183тип получится скорее всего тот жеА прочитать не судьба?
Приоритет типов данных (Transact-SQL)
...
Рейтинг: 0 / 0
Помогите разобраться в SQL
    #39624532
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите разобраться в SQL
    #39626052
SMART_001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! теперь сортировать по MAX(ab4.SM2) и вывести TOP 3

Select TOP 3 ab4.TV as TV, ab4.SM1 as SM1,ab4.SM2 as SM2, ab4.Y as Y

FROM

(Select TV1 AS TV, SUM(summa1) as SM1, 0 as SM2, y1 AS Y from table_1
Union all
Select TV2 AS TV, 0 as SM1, SUM(summa2) as SM2, y2 AS Y from table_2) ab4
where MAX(ab4.SM1)
group by ab4.TV

order by 1 asc
...
Рейтинг: 0 / 0
Помогите разобраться в SQL
    #39626127
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SMART_001,

1. Группировка производится после отсева по Where. Проверять соответствие MAX(ab4.SM1) можно в Having, например MAX(ab4.SM1) > 1000. Но это не твой случай (тебя интересуют не конкретные значения)

2. В твоем случае нужно выбрать первые три записи (Top 3) из отсортированной по ab4.SM2 таблицы (Order by ab4.SM2 Desc)
...
Рейтинг: 0 / 0
Помогите разобраться в SQL
    #39626534
SMART_001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kopelly,
СПАСИБО
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите разобраться в SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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