SQL GROUP BY Mit COUNT () - Funktion
Habe ich eine Aufgabe, die beinhaltet die Schaffung einer Datenbank für ein Krankenhaus und ich habe seit der Begegnung ein sehr frustrierend Fehler, die ich kann nicht scheinen, um zu lösen, egal wie viel Forschung, die ich tun.
Die Fehler, die ich erhielt:
FEHLER in Zeile 1: ORA-00979: kein GROUP BY-Ausdruck
Die Struktur von meinem code für das einfügen der Werte ist:
SELECT CONSULTANT.S_NO, DOCTOR.D_NAME, CONSULTANT.SPEC,
PATIENT.P_ID, PATIENT.P_NAME, COUNT(CONSULTANT.P_ID)
FROM PATIENT, CONSULTANT, DOCTOR
WHERE PATIENT.P_ID = CONSULTANT.P_ID
AND CONSULTANT.S_NO = DOCTOR.S_NO
GROUP BY CONSULTANT.S_NO;
Und die Struktur meiner Tabellen:
CREATE TABLE PATIENT (
P_ID NUMBER NOT NULL,
P_NAME CHAR(20),
ADDRESS VARCHAR(20),
DOB DATE,
WARD_NO NUMBER NOT NULL,
C_S_NO NUMBER NOT NULL,
CONSTRAINT PK_PATIENT PRIMARY KEY(P_ID)
);
CREATE TABLE DOCTOR (
S_NO NUMBER NOT NULL,
D_NAME CHAR(20),
APP_DATE DATE,
CONSTRAINT PK_DOC PRIMARY KEY(S_NO)
);
CREATE TABLE CONSULTANT (
S_NO NUMBER NOT NULL,
P_ID NUMBER NOT NULL,
SPEC CHAR(20),
T_CODE VARCHAR(20) NOT NULL,
CONSTRAINT PK_CDOC PRIMARY KEY(S_NO)
);
Würde wirklich zu schätzen jede Hilfe jemand kann mir auf die Lösung dieses dilemma.
InformationsquelleAutor Barry McAuley | 2012-12-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Sie über eine Aggregatfunktion, die Ihre Felder in der
SELECT
Liste, die nicht aggregiert werden müssen, um in derGROUP BY
:Als seitliche Anmerkung, ich würde auch mit ANSI-JOIN-syntax anstelle des Kommas getrennte Liste von Tabellen:
Nun, da müssen Sie fügen Sie die zusätzlichen Felder, um die
GROUP BY
dies könnte passen Sie dieCOUNT()
Summe zu zahlen, die Sie nicht erwartet haben. So müssen Sie eventuell auch eine sub-Abfrage, um die Anzahl, ähnlich wie dieses:Diese können Sie dann
GROUP BY
die ein Feld, das Sie ursprünglich wollte.InformationsquelleAutor Taryn