我正在执行以下查询,但是在最后一个子查询(里程数)上由于ORDER BY
:“ORA-00907:缺少右括号”我收到以下错误,如果我删除了ORDER BY它运作良好。
SELECT /* DATE OF THE ROUTE */
{GPS}.[DateTime],
/* ROUTE DESCRIPTION */
{Route}.[Description],
/* NAME OF THE DRIVER */
{Driver}.[Name],
/* VEHICLE LICENSE PLATE */
{Vehicle}.[Registration],
/* QUANTITY OF STOPS */
(SELECT COUNT({RouteStop}.[RouteId])
FROM {RouteStop}
WHERE {RouteStop}.[RouteId] = {GPS}.[RouteId]) AS StopCount,
/* AMOUNT OF FUEL */
(SELECT SUM(FUEL.[Value])
FROM {GPS} FUEL
WHERE {GPS}.[RouteId] = FUEL.[RouteId]
AND FUEL.[EventTypeId] = 23) FuelAmount, /* Event Fuel */
/* ROUTE STARTDATETIME */
{GPS}.[DateTime] AS ROUTESTARTDATETIME,
/* ROUTE ENDDATETIME */
(SELECT ROUTEENDDATETIME.[DateTime]
FROM {GPS} ROUTEENDDATETIME
WHERE {GPS}.[RouteId] = ROUTEENDDATETIME.[RouteId]
AND ROUTEENDDATETIME.[EventTypeId] = 5 /* Event Route Completed */
AND ROWNUM = 1) AS ROUTEEND,
/* INITIAL MILEAGE */
(SELECT MILEAGEBEGIN.[Value]
FROM {GPS} MILEAGEBEGIN
WHERE {GPS}.[RouteId] = MILEAGEBEGIN.[RouteId]
AND MILEAGEBEGIN.[EventTypeId] = 21 /* Event Mileage */
AND ROWNUM = 1
ORDER BY MILEAGEBEGIN.[DateTime]
) AS INITIALMILEAGE
FROM {GPS}
INNER JOIN {Route}
ON {GPS}.[RouteId] = {Route}.[Id]
INNER JOIN {Driver}
ON {GPS}.[DriverId] = {Driver}.[Id]
INNER JOIN {Availability}
ON {Driver}.[Id] = {Availability}.[DriverId]
INNER JOIN {Vehicle}
ON {Availability}.[VehicleId] = {Vehicle}.[Id]
WHERE {GPS}.[EventTypeId] = 3 /* Event RouteStarted */
我尝试了以下方式,但是我收到了这个错误:“ORA-00936:缺少表达”。
SELECT /* DATE OF THE ROUTE */
{GPS}.[DateTime],
/* INITIAL MILEAGE */
SELECT TEST,'more test' FROM (SELECT MILEAGEBEGIN.[Value] AS TEST
FROM {GPS} MILEAGEBEGIN
WHERE {GPS}.[RouteId] = MILEAGEBEGIN.[RouteId]
AND MILEAGEBEGIN.[EventTypeId] = 21 /* Event Mileage */
ORDER BY MILEAGEBEGIN.[DateTime] ASC
)
WHERE ROWNUM = 1 AS INITIALMILEAGE
FROM {GPS}
WHERE {GPS}.[EventTypeId] = 3 /* Event RouteStarted */
答案 0 :(得分:0)
删除括号
SELECT /* DATE OF THE ROUTE */
GPS.DateTime,
/* ROUTE DESCRIPTION */
Route.Description,
/* NAME OF THE DRIVER */
Driver.Name,
/* VEHICLE LICENSE PLATE */
Vehicle.Registration,
/* QUANTITY OF STOPS */
(SELECT COUNT(RouteStop.RouteId)
FROM RouteStop
WHERE RouteStop.RouteId = GPS.RouteId) AS StopCount,
/* AMOUNT OF FUEL */
(SELECT SUM(FUEL.Value)
FROM GPS FUEL
WHERE GPS.RouteId = FUEL.RouteId
AND FUEL.EventTypeId = 23) FuelAmount, /* Event Fuel */
/* ROUTE STARTDATETIME */
GPS.DateTime AS ROUTESTARTDATETIME,
/* ROUTE ENDDATETIME */
(SELECT ROUTEENDDATETIME.DateTime
FROM GPS ROUTEENDDATETIME
WHERE GPS.RouteId = ROUTEENDDATETIME.RouteId
AND ROUTEENDDATETIME.EventTypeId = 5 /* Event Route Completed */
AND ROWNUM = 1) AS ROUTEEND,
/* INITIAL MILEAGE */
(SELECT MILEAGEBEGIN.Value
FROM GPS MILEAGEBEGIN
WHERE GPS.RouteId = MILEAGEBEGIN.RouteId
AND MILEAGEBEGIN.EventTypeId = 21 /* Event Mileage */
AND ROWNUM = 1
ORDER BY MILEAGEBEGIN.DateTime
) AS INITIALMILEAGE
FROM GPS
INNER JOIN Route
ON GPS.RouteId = Route.Id
INNER JOIN Driver
ON GPS.DriverId = Driver.Id
INNER JOIN Availability
ON Driver.Id = Availability.DriverId
INNER JOIN Vehicle
ON Availability.VehicleId = Vehicle.Id
WHERE GPS.EventTypeId = 3 /* Event RouteStarted */
其他查询:
SELECT /* DATE OF THE ROUTE */
GPS.DateTime,
/* INITIAL MILEAGE */
( SELECT TEST FROM (SELECT MILEAGEBEGIN.Value AS TEST
FROM GPS MILEAGEBEGIN
WHERE GPS.RouteId = MILEAGEBEGIN.RouteId
AND MILEAGEBEGIN.EventTypeId = 21 /* Event Mileage */
ORDER BY MILEAGEBEGIN.DateTime ASC
)
WHERE ROWNUM = 1) AS INITIALMILEAGE
FROM GPS
WHERE GPS.EventTypeId = 3 /* Event RouteStarted */
答案 1 :(得分:0)
正确查询
var texts = svg.selectAll("text")
.data(data)
.enter()
.append("text")
.attr ("x",function(d, i) { return (i * 30) + 50;})
.attr ("y",function(d) { return 250 - (d.some_var * 50);})
.attr("rotate", 315)
.text(function(d){ return d.name; });