0
查找執行次數最多的所有司機的許可證編號(LicenseCardNo)。我無法編寫SQL select語句來實現此目的。希望你們能幫忙。以下是關於我的表格和表格內的值的示例數據?我還附上了我迄今爲止所做的代碼。如何獲得最大次數的旅行
DRIVER(OwnerNo, LicenseCardNo,STATUS,)
PRIMARY KEY(OwnerNo)
UNIQUE(LicenseCardNo)
FOREIGN KEY(OwnerNo) REFERENCES EMPLOYEE(OwnerNo)
CHECK (STATUS IN ('MAIN DRIVER', 'DRIVER', 'TAXI DRIVER')))
(A29, DR1, 'MAIN DRIVER')
(A28, DR2, 'MAIN DRIVER')
(A25, DR3, 'TAXI DRIVER')
(A25, DR22, 'DRIVER')
(A20, DR6, 'DRIVER')
(A23, DR7, 'TAXI DRIVER')
(A30, DR8, 'TAXI DRIVER')
TRIP(TripNo,LicenseCardNo,CarReg,TRIP_DATE,)
PRIMARY KEY (TripNo),
FOREIGN KEY (LicenseCardNo) REFERENCES DRIVER(LicenseCardNo),
FOREIGN KEY (CarReg) REFERENCES TRUCK(CarReg)
(1, DR1, 'SJG123', ADD_MONTHS(TRUNC(SYSDATE),0)-135)
(2, DR2, 'GBC222', ADD_MONTHS(TRUNC(SYSDATE),0)-135)
(3, DR1, 'GBC270', ADD_MONTHS(TRUNC(SYSDATE),0)-133)
(4, DR3, 'SJG123', ADD_MONTHS(TRUNC(SYSDATE),0)-130)
(5, DR22, 'SJG123', ADD_MONTHS(TRUNC(SYSDATE),0)-130)
(6, DR22, 'GBC222', ADD_MONTHS(TRUNC(SYSDATE),0)-124)
(7, DR7, 'KKK007', ADD_MONTHS(TRUNC(SYSDATE),0)-123)
(8, DR1, 'SJG123', ADD_MONTHS(TRUNC(SYSDATE),0)-123)
(9, DR2, 'QRT834', ADD_MONTHS(TRUNC(SYSDATE),0)-123)
(10, DR22, 'GBC270', ADD_MONTHS(TRUNC(SYSDATE),0)-122)
這是我能走多遠。不知道如何繼續。我設法通過互聯網獲得一些幫助。請指教。
SELECT DRIVER.LicenseCardNo AS LICENSE_NO, COUNT(TRIP.TripNo) AS TOTAL_NO_TRIPS
FROM DRIVER LEFT OUTER JOIN TRIP ON DRIVER.LicenseCardNo = TRIP.LicenseCardNo
GROUP BY DRIVER.LicenseCardNo
ORDER BY DRIVER.LicenseCardNo;
此代碼列出了每個駕駛員旅行的行程數。
因此,現在我需要找出執行最大行程次數的所有司機的許可證編號(LicenseCardNo)。
謝謝,但我怎麼能實現用普通的SQL代碼 –
我想做出碼容易使即將接管的人可以理解。不知道他是否擅長甲骨文。 –
你可以使用group by和join來做同樣的事情。但是,排名函數*現在是SQL標準的一部分;他們已經是Oracle十多年的一員;而且,它們通常比通過/ join方法的組更有效。 –