У меня есть таблица, которая выглядит какОбъединение столбцов в одной строке
TRANSACTION_ID VALUE TRANSACTION_TYPE AGR_NBR PART_NBR
1 3456 BOOKING ABC1 1
2 345678 BOOKING ABC2 NULL
3 45678 BOOKING ABC1 2
4 45678 BIING ABC2 NULL
5 45678 BILLING ABC1 1
6 4775678 BILLING ABC2 NULL
Я бегу простой выбор на этом столе, как показано ниже:
SELECT AGR_NBR,PART_NBR,
CASE WHEN TRANSACTION_TYPE = 'BOOKING'
THEN SUM(VALUE)
END AS BOOKING_VAL,
CASE WHEN TRANSACTION_TYPE = 'BILLING'
THEN SUM(VALUE)
END AS BILLINNG_VAL
FROM AA_TEST_TABLE
WHERE AGR_NBR = 'ABC1'
GROUP BY AGR_NBR,PART_NBR,TRANSACTION_TYPE;
выход, который приходит из выше запрос:
AGR_NBR PART_NBR BOOKING_VAL BILLINNG_VAL
ABC1 1 NULL 45678
ABC1 1 3456 NULL
ABC1 2 45678 NULL
Но что я хочу, это же AGR_NBR & ЧАСТЬ типа (АВС1 & 1) в этом случае должна быть только 1 строка, как показано ниже &. Я бы предпочел сделать это, если это возможно, по выбору, если с исходными данными есть множество формул & присоединяется & также это всего лишь фиктивные данные для 1 строки, но в действительности будет N количество строк.
AGR_NBR PART_NBR BOOKING_VAL BILLINNG_VAL
ABC1 1 3456 45678
Понял использовал это, ВЫБРАТЬ AGR_NBR, PART_NBR, SUM (CASE WHEN TRANSACTION_TYPE = 'БРОНИРОВАНИЕ' \t ТОГДА VALUE \t END) AS BOOKING_VAL, SUM (CASE WHEN TRANSACTION_TYPE = 'BILLING' \t ТОГДА ЗНАЧЕНИЕ \t КОНЕЦ) КАК BILLINNG_VAL ОТ AA_TEST_TABLE ГДЕ AGR_NBR = '' abc1 GROUP BY AGR_NBR, PART_NBR; –
спасибо Saharsh :) –