0
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);
내 코드와 함께 다음 일관성 제약 조건을 위반하는 모든 경로를 찾으려고합니다. 각 여행의 마지막 다리오류 111, 그룹 기능의 사용이 잘못되었습니다.
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');
당신은 where 절에 집계 함수를 사용하는'MAX (T1.LEGNUM)'당신은 할 수 없습니다. 나는'GroupBy'와'Have'를 제안 할 것입니다 ... – Codexer