Ich habe eine Abfrage geschrieben, um eine einfache lineare Regression zu testen, die Linie der besten Anpassung zwischen zwei Sätzen von Gewicht Maßnahmen zu erhalten. Es sollte hoffentlich Ergebnisse zurück wie unten, aber es ist einen seltsamen FehlerOracle SQL - Strange ‚ORA-00907 Fehlende rechte Klammer‘ Fehler
‚ORA-00907 Fehlenden rechte Klammer‘
werfen und TOAD zeigt zum Teil, wo es heißt:
case (when trn.wid_location = 28.3 then
Ich habe es für fehlende Klammern gekämmt, aber ich glaube nicht, dass das das Problem ist, denn wenn ich die Case-Anweisung durch
ersetzenDer Fehler verschwindet und die Abfrage wird ausgeführt.
Irgendwelche Gedanken?
Cheers,
Tommy
select
decode(wid_location,28.3,'CL',29.6,'DA') as site,
(n*sum_xy - sum_x*sum_y)/(n*sum_x_sq - sum_x*sum_x) as m,
(sum_y - ((n*sum_xy - sum_x*sum_y)/(n*sum_x_sq - sum_x*sum_x))*sum_x)/n as b
from (
select
wid_location,
sum(wids) as sum_x,
sum(mine) as sum_y,
sum(wids*mine) as sum_xy,
sum(wids*wids) as sum_x_sq,
count(*) as n
from (
select
trn.wid_location,
con.empty_weight_total as wids,
case (
when trn.wid_location = 28.3 then con.empty_weight_total*0.900-1.0
when trn.wid_location = 29.6 then con.empty_weight_total*0.950-1.5
end
) as mine
from widsys.train trn
inner join widsys.consist con
using (train_record_id)
where mine_code = 'YA'
and to_char(trn.wid_date,'IYYY') = 2009
and to_char(trn.wid_date,'IW') = 29
)
group by wid_location
)
Und hier sind die Ergebnisse, die ich gerne sehen würde
-- +----------+--------+----------+
-- | SITE | M | B |
-- +----------+--------+----------+
-- | CL | 0.900 | -1.0 |
-- +----------+--------+----------+
-- | DA | 0.950 | -1.5 |
-- +----------+--------+----------+
wow. Das war jetzt ein dummer Moment für mich. –