Ich habe Table_A wie dies unterWie String in eine Zahl in Oracle Concat
SALDO_AWAL_TAHUN YTD_AMOUNT_JAN YTD_AMOUNT_FEB YTD_AMOUNT_MAR BRANCH_ID
100 200 300 400 001a
YTD_AMOUNT_JAN bedeutet Menge von Januar YTD_AMOUNT_FEB bedeutet Menge Februar usw. Was ich will, ist, ich auf der Grundlage des Monats wählen machen .Ich mache schon Funktion, um einen Monat als Parameter zu definieren.
FUNCTION GET_MONTH_NAME (P_MONTH INT)
RETURN VARCHAR
IS
V_RESULT VARCHAR (20);
BEGIN
SELECT CASE
WHEN P_MONTH = 1 THEN 'JAN'
WHEN P_MONTH = 2 THEN 'FEB'
WHEN P_MONTH = 3 THEN 'MAR'
WHEN P_MONTH = 4 THEN 'APR'
WHEN P_MONTH = 5 THEN 'MAY'
WHEN P_MONTH = 6 THEN 'JUN'
WHEN P_MONTH = 7 THEN 'JUL'
WHEN P_MONTH = 8 THEN 'AUG'
WHEN P_MONTH = 9 THEN 'SEP'
WHEN P_MONTH = 10 THEN 'OCT'
WHEN P_MONTH = 11 THEN 'NOV'
ELSE 'DEC'
END
INTO V_RESULT
FROM DUAL;
RETURN V_RESULT;
END;
Von der Funktion, die ich gemacht habe. zum Beispiel habe ich MAR (march) as V_MONTH
, dann will ich String concat 'YTD_AMOUNT_' + MAR
(die ich von der Funktion bekam) in meiner SELECT-Abfrage wie folgt aus:
SELECT SUM(NVL (SALDO_AWAL_TAHUN, 0) + (NVL ('YTD_AMOUNT_'
|| GET_MONTH_NAME (3), 0))) AS value
FROM Table_A
ich das Ergebnis will sein wird:
500 (SALDO_AWAL_TAHUN + YTD_AMOUNT_MAR )
Aber Es zeigte mir "Ungültige Nummer" Ich suche so viel über meinen Fall in Google, aber ich bin immer noch nicht finden
Können Sie an einem Beispiel erklären und eine Beispielausgabe? –
Bitte Code der Funktion, Tabellenstruktur, einige Beispieldaten und Ausgaben, die Sie erwarten, hinzufügen. –
Ich habe schon ein Update auf meine Fragen gemacht. Bitte lassen Sie mich wissen, wenn Sie weitere Details benötigen –