2016-10-05 9 views
0

ich in sql server bin neu, schreiben diese Abfrage:
Warum funktioniert meine Anfrage nicht korrekt?

SELECT top 20 y.Telno, 
     t.Cycle+'-'+y.Cycle Cycle, 
     ((y.CurBill - t.CurBill)/y.CurBill) Price 
FROM [ClubEatc].[dbo].[GetOnlineBills] y 
INNER JOIN [ClubEatc].[dbo].[GetOnlineBills] t 
    ON y.Telno = t.TelNo AND CAST(y.Cycle as int)-1 = CAST(t.Cycle as int) 


in realen Daten haben diesen Datensatz auf GetOnlineBills in Cycle=952:

TelNo   CurBill TotalBill ExecuteDate  Cycle 
4133223011  43  1209337  1395/4/21  952 


Und in Cycle=951:

TelNo  CurBill TotalBill ExecuteDate Cycle 
4133223011 349  1209295 1395/4/21 951  


in berechnen calc diese Formel:

(Curbill.Cycle[952]-Curbill.Cycle[951])/Curbill.Cycle[952]=((349-43))/349=0.87 


aber auf Abfrage diese zeigen mir:

-7.11627906976744 


was passieren Wo lese ich danke all verwechseln?.

Antwort

1

ur-Code ((43-349))/43 und gibt Ergebnis tut -

Verwendung Code unten ...

SELECT top 20 y.Telno, 
     t.Cycle+'-'+y.Cycle Cycle, 
     ((t.CurBill - y.CurBill)/t.CurBill) Price FROM [ClubEatc].[dbo].[GetOnlineBills] y INNER JOIN 
[ClubEatc].[dbo].[GetOnlineBills] t 
    ON y.Telno = t.TelNo AND CAST(y.Cycle as int)-1 = CAST(t.Cycle as int) 
Verwandte Themen