Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите разобраться в SQL / 13 сообщений из 13, страница 1 из 1
03.04.2018, 06:46
    #39624417
SMART_001
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться в SQL
Добрый день! Есть 2 таблица в SQL SERVERе. Я их объединил(UNION ALL). Теперь как получить как на картинке(Результат)
...
Рейтинг: 0 / 0
03.04.2018, 06:54
    #39624419
Kopelly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться в SQL
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
03.04.2018, 07:00
    #39624422
SMART_001
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться в SQL
Kopelly,

Спасибо!
...
Рейтинг: 0 / 0
03.04.2018, 07:01
    #39624423
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться в SQL
Код: 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
03.04.2018, 07:14
    #39624429
SMART_001
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться в SQL
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
03.04.2018, 07:18
    #39624431
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться в SQL
В крайнем случае если будут не целые числа
summa1, 0*summa1 as summa2
0*summa2 as summa1, summa2
...
Рейтинг: 0 / 0
03.04.2018, 07:26
    #39624437
SMART_001
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться в SQL
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
03.04.2018, 07:32
    #39624440
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться в SQL
0 as - тип получится скорее всего INT
0*summa1/2 as - тип получится скорее всего тот же, что и у summa1/2

Если summa1/2 с типом FLOAT, то UNION ALL может и не сработать
...
Рейтинг: 0 / 0
03.04.2018, 10:45
    #39624528
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться в SQL
982183тип получится скорее всего982183тип получится скорее всего тот жеА прочитать не судьба?
Приоритет типов данных (Transact-SQL)
...
Рейтинг: 0 / 0
03.04.2018, 10:47
    #39624532
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться в SQL
...
Рейтинг: 0 / 0
05.04.2018, 12:45
    #39626052
SMART_001
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться в SQL
Спасибо! теперь сортировать по 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
05.04.2018, 14:14
    #39626127
Kopelly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться в SQL
SMART_001,

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

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


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