oracle pl/saql ORA-01790: Ausdruck muss denselben Datentyp wie die korrespondierende Ausdruck
SELECT SUM(SALES_AMOUNT)SALES,
YEAR,
MONTH,
CATAGORY_ID,
SALES_PERSON_ID,
ITEM_TYPE_ID
FROM APEX_FINAL
where sales_amount is not null
and catagory_id is not null
GROUP BY (YEAR,MONTH,CATAGORY_ID,SALES_PERSON_ID,ITEM_TYPE_ID)
union all
SELECT SUM(SALES_AMOUNT)SALES,
YEAR,
MONTH,
CATAGORY_ID,
'all others' SALES_PERSON_ID,
ITEM_TYPE_ID
FROM APEX_FINAL
where sales_amount is not null
and sales_person_id is null
GROUP BY (YEAR,MONTH,CATAGORY_ID,SALES_PERSON_ID,ITEM_TYPE_ID)
dies ist mein code plz helfen mir bei der Lösung meines Problems, wie ich m immer die eroor der mis-Mathematik-Daten-Typen, jedoch sind alle Datentypen gleiche
InformationsquelleAutor Qaisar Tariq | 2014-06-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sales Person-ID scheint das Missverhältnis. Es könnte möglicherweise eine
NUMERIC
Datentyp in der Tabelle.Werden kann, können Sie
TO_CHAR(SALES_PERSON_ID)
im ersten Union-Abfrage, wie unten dargestellt. Es würde Ihnen helfen, das Problem zu lösenInformationsquelleAutor Nishanthi Grashia
Als @Nisha bereits darauf hingewiesen, sind Sie wahrscheinlich diese Fehlermeldung bekommen, weil
SALES_PERSON_ID
ist ein numerisches Feld - Sie werden entweder zu haben, um es in einen string konvertieren oder (vorzugsweise) die Verknüpfung zu einer anderen Tabelle, um den Namen der Umsatz person.Zusätzlich, ich glaube, du hast einen Logik-Fehler in Ihrer Anfrage - in Ihrem ersten
SELECT
Sie filter durchcatagory_person_id is not null
; dies dürfte wohlsales_person_id is not null
.Angenommen, dass dies der Fall ist, dann vereinfachen Sie die Abfrage mit einem
CASE
- Anweisung (Sie können auchDECODE
oderCOALESCE
):InformationsquelleAutor Frank Schmitt