我不能得到這個工作,我什麼似乎太容易了對不起,但我真的很期待的建議:甲骨文 - 沒有得到期望的結果
我有3個表:
事故
(
ACCIDENT_DATE DATE,
DRIVER_CODE VARCHAR2,
DAMAGES NUMBER,
LOCATION_ACCIDENT VARCHAR2,
CAR_CODE VARCHAR2
)
CARS
(
CAR_CODE VARCHAR2,
MODEL VARCHAR2,
YEAR VARCHAR2,
CODE_OWNER VARCHAR2)
// I didn't use this table ,but it was stated so I didn't want to miss anything
PERSON
(
CODE VARCHAR2,
NAME VARCHAR2,
RESIDENCE VARCHAR2
)
查詢是:
顯示名稱,這在過去4個月有超過兩起事故的人
我寫的代碼:
select a.driver_code,a.accident_date,p.name
from accidents a join p person
on (a.driver_code=p.code)
group by a.accident_date,a.driver_code,p.code
having count (a.accident_date)>2
它顯示1在發生了2起事故的2名駕駛員中,有一次我擺弄了我的表格數據後表示可以找到任何數據。
我知道我並沒有解決它在過去4個月的部分,因爲我不知道如何使用它。這是我的想法,雖然我知道這將顯示(或想反正)系統的日期和而我想在過去4個月,顯示驅動器的事故發生日期(全部)之間的月份:
select a.driver_code,a.accident_date,p.name,
sysdate,accident_date,
months_between(sysdate,accident_date)
from accidents a join p person
on (a.driver_code=p.code)
group by a.accident_date,a.driver_code,p.code
having count (a.accident_date)>2
一般GROUP BY規則說:如果指定了GROUP BY子句,SELECT列表中的每個列引用都必須標識分組列或者是set函數的參數! – jarlh