CHill60
Хорошо, единственная проблема, которую я могу найти с вашим кодом, заключается в том, что столбец AccNo
в DISTINCT(AccNo)
неоднозначный.
Другими словами, Oracle не может определить, имели ли вы в виду AccNo
в Table1
или тот, что внутри Table2
.
Так что просто дайте Oracle знать, какой из них использовать.
SELECT DISTINCT(T1.AccNo),TRNO,AMOUNT
Member 11658469
Привет
Мой фактический код скопирован ниже.
ВЫБЕРИТЕ ЧЕТКУЮ ВЕРХНЮЮ(PAYMENTLOCATION) КАК PAYMENTLOCATION,ВЕРХНИЙ(CREDITCARDTYPE) КАК CREDITCARDTYPE,
СЛУЧАЙ, КОГДА ВЕРХНИЙ(PM.PAYMENTLOCATION) В ('SHAMELSIMSIM','AUB','AUBSIMSIM','BSB','BBKSIMSIM','HSB','KHB','KHBSIMSIM','NBB','NBBSIMSIM','SBB','SCBSIMSIM','BBK') ЗАТЕМ
Случай, когда COUNT(T4.SERVICENO) OVER (partition by '973' || PM.ACCOUNT_NUMBER) > 0
ЗАТЕМ ГРАФ(ПМ.TRANSACTION_NUMBER) НАД (РАЗДЕЛ ПО ВЕРХНЕЙ(ПМ.PAYMENTLOCATION) ,ВЕРХНИЙ(ПМ.CREDITCARDTYPE))
ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК DB_SIMSIM_COUNT,
СЛУЧАЙ, КОГДА ВЕРХНИЙ(PM.PAYMENTLOCATION) В ('SHAMELSIMSIM','AUB','AUBSIMSIM','BSB','BBKSIMSIM','HSB','KHB','KHBSIMSIM','NBB','NBBSIMSIM','SBB','SCBSIMSIM','BBK') ТОГДА
Случай, когда COUNT(T4.SERVICENO) OVER (partition by '973' || PM.ACCOUNT_NUMBER) > 0
ТОГДА СУММА(ТЧ.СУММА) OVER (РАЗДЕЛ ПО PM.PAYMENTLOCATION,UPPER(PM.CREDITCARDTYPE))
ИНАЧЕ 0 КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК DB_SIMSIM_SUM
ОТ PAYMENTS_LOG_ALL_V PM
ВНУТРЕННЕЕ СОЕДИНЕНИЕ BSS_DATA.BSS_ASSET_INFO Т4 на '973' || ПМ.НОМЕР_АККАУНТА = Т4.SERVICENO и Т4.Assettype = 'Mobile_Prepaid и Т4.ASSET_STATUS = 'активный' и ПМ.BILL_PROFILE_ID ИМЕЕТ ЗНАЧЕНИЕ NULL
ГДЕ ВЕРХНИЙ(PM.PAYMENTLOCATION) В ('SHAMELSIMSIM','AUB','AUBSIMSIM','BSB','BBKSIMSIM','HSB','KHB','KHBSIMSIM','NBB','NBBSIMSIM','SBB','SCBSIMSIM','BBK')
И T4.Assettype = 'Mobile_Prepaid'
Здесь в таблице Т4 один столбец кода, который придет 1 или 2 для одного и того же СЕРВИСЕНО в одной и той же таблице.Из-за того, что этот код появляется дважды, мы не можем получить правильные данные(сумму) с помощью запроса.Значит для какой-то услуги, если 2 кода с находятся там в два раза больше количества транзакций и суммы берется.Мне нужно избежать второй записи.Если SERVICENO одинакова для кодов, то один раз сумма будет взята на основе одного и того же условия в запросе.
Пожалуйста помочь