SELECT DISTINCT CONCAT('TOTAL NUMBER OF LEGS IN A TRIP NUMBER ', T1.TNUM, ' IS NOT EQUAL TO THE LARGEST NUMBER OF LEG IN THE TRIP') AS 'ERR'
FROM TRIPLEG T1
WHERE MAX(T1.LEGNUM) = (SELECT COUNT(T2.TNUM)
FROM TRIPLEG
WHERE T1.TNUM = T2.TNUM);
Avec mon code, j'essaie de trouver tous les déplacements qui violent la contrainte de cohérence suivante. la dernière étape de chaque voyage doit être égal au nombre total de pieds dans un voyage »Erreur 111, utilisation invalide des fonctions de groupe
CREATE TABLE TRIPLEG(
TNUM DECIMAL(10) NOT NULL,
LEGNUM DECIMAL(2) NOT NULL,
DEPARTURE VARCHAR(30) NOT NULL, DESTINATION VARCHAR(30) NOT NULL,
CONSTRAINT TRIPLEG_PKEY PRIMARY KEY (TNUM, LEGNUM),
CONSTRAINT TRIPLEG_UNIQUE UNIQUE(TNUM, DEPARTURE, DESTINATION),
CONSTRAINT TRIPLEG_FKEY1 FOREIGN KEY (TNUM) REFERENCES TRIP(TNUM));
INSERT INTO TRIPLEG VALUES(1, 1, 'Sydney', 'Melbourne');
INSERT INTO TRIPLEG VALUES(1, 2, 'Melbourne', 'Hobart');
Vous utilisez des fonctions d'agrégation dans une clause where:' MAX (T1.LEGNUM) 'vous ne pouvez pas.Je voudrais suggérer un' GroupBy' et un 'Having' ... – Codexer