2013-02-20 75 views
0

我應該知道這一點,但我不記得,我該如何添加另一列來顯示AmountDays * PitchValues.Value = results。總和使用Datediff

SELECT DATEDIFF(day, Bookings.ArrivalDate, Bookings.DepartureDate) AS AmountDays, 
    PitchValues.Value 
FROM Bookings 
INNER JOIN PitchValues 
    ON Bookings.PitchType_Skey = PitchValues.PitchType_Skey 

結果到目前爲止

AmountDays PitchValues.Value BookingValue 
    15   £15     
    7   £9 
    8   £25 

回答

1
SELECT   
    DATEDIFF(day, Bookings.ArrivalDate, Bookings.DepartureDate) AS AmountDays, 
    PitchValues.Value, 
    (DATEDIFF(day, Bookings.ArrivalDate, Bookings.DepartureDate)) * PitchValues.Value AS YourCol 
FROM    
    Bookings INNER JOIN 
    PitchValues ON Bookings.PitchType_Skey = PitchValues.PitchType_Skey 

或者,只爲使它看起來很漂亮:

SELECT 
    P0.AmountDays, 
    P0.Value, 
    (P0.AmountDays * P0.Value) as YourCol 
FROM 
    (
    SELECT   
     DATEDIFF(day, Bookings.ArrivalDate, Bookings.DepartureDate) AS AmountDays, 
     PitchValues.Value 
    FROM    
     Bookings INNER JOIN 
     PitchValues ON Bookings.PitchType_Skey = PitchValues.PitchType_Skey 
) P0 

你也可能需要執行ISNULL(0)周圍的在事件列中存在空值時,整個值將變爲空值。像這樣:

SELECT 
    P0.AmountDays, 
    P0.Value, 
    (P0.AmountDays * P0.Value) as YourCol 
FROM 
    (
    SELECT   
     ISNULL(DATEDIFF(day, Bookings.ArrivalDate, Bookings.DepartureDate), 0) AS AmountDays, 
     ISNULL(PitchValues.Value, 0) as Value 
    FROM    
     Bookings INNER JOIN 
     PitchValues ON Bookings.PitchType_Skey = PitchValues.PitchType_Skey 
) P0 
+0

SQL大師非常感謝你。 – wafw1971 2013-02-20 11:48:30