2016-09-21 21 views
0

Ich möchte diese Gleichung in SQL implementieren:Wie schreibe ich eine Gleichung in SQL?

f(x) = f(a) + (f(b)-f(a)) * (x-a)/(b-a) 

Meine Eingabe ist wie folgt:

enter image description here

Was ich versucht:

eine Syntax
select ((select CosValue from CosineTable where Angle=70) + 
     ((select CosValue from CosineTable where Angle=75) - 
     (select CosValue from CosineTable where Angle=70)) * (73-70)/(75-70) 
from CosineTable; 

Es zeigt mir Error.

+0

tun Sie ein Ergebnis für jede Zeile zurückkommen müssen, oder suchen Sie auf ein bestimmte Reihe nur? – Takarii

+0

Welches DBMS benutzen Sie? –

+0

Ich muss nur einen einzigen Wert ergeben – user3740504

Antwort

0

Ihnen fehlt ein schließenden Klammer )

Versuchen Sie folgendes:

SELECT ((SELECT CosValue 
     FROM CosineTable 
     WHERE Angle = 70 
    ) + ((SELECT CosValue 
       FROM  CosineTable 
       WHERE  Angle = 75 
      ) - (SELECT CosValue 
        FROM  CosineTable 
        WHERE  Angle = 70 
       )) * (73 - 70)/(75 - 70)) 
FROM CosineTable; 

Aber es funktioniert nur, wenn Sie immer einen einzelnen Wert zurück in Ihre Subselects bekommen.

+0

Vielen Dank. Ich habe den vorgeschlagenen Schnitt ausgeführt, aber ich habe nichts dafür bekommen, obwohl die Abfrage sicher läuft. – user3740504

0

Angenommen, es ist nur eine Zeile pro Winkel in der Tabelle, können Sie Abfrage unter Verwendung eines Cross-Join vereinfacht werden:

select a70.cosvalue + (a75.cosvalue - a70.cosvalue) * (73-70)/(75-70)) 
from CosineTable a70 
    cross join cosinetable a75 
where a70.angle = 70 
    and a75.angle = 75; 
+0

a70.cosvalue + (a75.cosvalue - a70.cosvalue) * (73-70)/(75-70) – Serg

+0

@serg: danke, korrigiert –

+0

Ich glaube nicht, dass ich Kreuz Joins brauche und werde es versuchen mit auswählen, von und wo nur – user3740504

Verwandte Themen