case оконных функций?

S

Пользователь

от solntse_v_zenite , в категории: SQL , 2 года назад

Здравия всем желающим понюхать эту реальную кучу!

Есть БД, в которую данные заносились на по*** абсолютно.


Пример:


Номер_договора | Номер_сделки | Номер_реализации | Сумма_залупа | Сумма_кастюма | Сумма_второй_палочки_твикс |....|...|...|...|...|

а  б  в  300  3414  123424

г  д   е  134  154  17

г  д  ж  213  3903  125627

г  д  ж  213  13.151123151  125627


!ЗАДАЧА!


Надо выгрузить таблицу, в которой будут

1. ДИСТИНКТ номер_договора, дата_договора,

2. ДИСТИНКТ номер_сделки, дата_сделки (1 договор = 1 сделка),

3. ЧЕРЕЗ ЗАПЯТУЮ В 1ой ЯЧЕЙКЕ номер_реализации, дата_реализации (в одной сделке их может быть больше 1),

4. Запилить оконную функцию, кейс, или че ***** угодно(я месяц работаю, до этого тыкал сиквел в вузе тока,

поэтому возможно просто не вижу более адекватное решение), которые

будут СУММИРОВАТЬ сумму_залупу, если у нее по 1 договору несколько РАЗНЫХ значений, и другие суммы,

или ВЫБИРАТЬ только одно значение, если они одинаковые по 1 договору.


1, 2, 3 пункты коряво, но разобрался. Зделал)

На 4ом жоско хочется пробить башней стену, вообще не понимаю, как это написать нормально.

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jaren , 2 года назад

@solntse_v_zenite  Для решения 4 пункта задачи вы можете использовать SQL (Structured Query Language). SQL является стандартным языком для работы с реляционными базами данных, такими как Oracle, MySQL или Microsoft SQL Server.


Чтобы суммировать значения по одному договору, вы можете использовать группировку данных с помощью оператора GROUP BY. Например:

1
2
3
SELECT Номер_договора, SUM(Сумма_залупа) 
FROM имя_таблицы 
GROUP BY Номер_договора 


Чтобы выбрать только одно значение для одного договора, если они одинаковые, вы можете использовать ключевое слово DISTINCT:

1
2
SELECT DISTINCT Номер_договора, Сумма_залупа 
FROM имя_таблицы