2016-10-05 3 views
0

Я новичок в sql server, написать этот запрос:
Почему мой запрос не работает?

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) 


в реальных данных имеют этот показатель на GetOnlineBills в Cycle=952:

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


И в Cycle=951:

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


в рассчитайте calc эта формула:

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


но до запроса показать мне это:

-7.11627906976744 


, что случилось, где я перепутать спасибо всем?.

ответ

1

ур код делает ((43-349))/43 и дает результат -

использовать ниже код ...

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)