Here is my query. This query resulting in 20-30 seconds and in my application causes timeout error. i tried to re-write with clause but I couldn't make it run.

Sorry for my poor english. 

```
SELECT 
    StationName, StationID,
    (SELECT TOP (1) ISNULL(SUM(Liter), 0) AS TotalLiter 
     FROM Transactions  (nolock) 
     WHERE (StationID = s.StationID) 
       AND (SaleDate>= CONVERT(date, GETDATE())) 
       AND (FuelTypeID = 1)) AS Total1,
    (SELECT TOP (1) ISNULL(SUM(Liter), 0) AS TotalLiter
     FROM dbo.Transactions (nolock) AS Transactions_11 
     WHERE (StationID = s.StationID) 
       AND (SaleDate >= CONVERT(date, GETDATE())) 
       AND (FuelTypeID = 2)) AS Total2,
    (SELECT TOP (1) ISNULL(SUM(Liter), 0) AS TotalLiter
     FROM dbo.Transactions (nolock) AS Transactions_10
     WHERE (StationID = s.StationID) 
       AND (SaleDate >= CONVERT(date, GETDATE())) 
       AND (FuelTypeID = 3)) AS Total3,
    (SELECT TOP (1) ISNULL(SUM(Liter), 0) AS TotalLiter
     FROM dbo.Transactions (nolock) AS Transactions_9
     WHERE (StationID = s.StationID) 
       AND (SaleDate >= CONVERT(date, GETDATE())) 
       AND (FuelTypeID = 4)) AS Total4,
    (SELECT TOP (1) ISNULL(SUM(Liter), 0) AS TotalLiter
     FROM dbo.Transactions (nolock) AS Transactions_8
     WHERE (StationID = s.StationID) 
       AND (SaleDate >= CONVERT(date, GETDATE())) 
       AND (FuelTypeID = 5)) AS Total5,
                  (SELECT TOP (1) ISNULL(SUM(Liter),0) AS TotalLiter
                   FROM      dbo.Transactions  (nolock) AS Transactions_7
                   WHERE   (StationID = s.StationID) AND (SaleDate >= CONVERT(date, GETDATE())) AND (FuelTypeID = 6)) AS Total6,
                  (SELECT TOP (1) ISNULL(SUM(Liter),0) AS TotalLiter
                   FROM      dbo.Transactions  (nolock) AS Transactions_6
                   WHERE   (StationID = s.StationID) AND (SaleDate >= CONVERT(date, GETDATE())) AND (FuelTypeID = 7)) AS Total7,
                  (SELECT TOP (1) ISNULL(SUM(Liter),0) AS TotalLiter
                   FROM      dbo.Transactions  (nolock) AS Transactions_5
                   WHERE   (StationID = s.StationID) AND (SaleDate >= CONVERT(date, GETDATE())) AND (FuelTypeID = 8)) AS Total8,
                  (SELECT TOP (1) ISNULL(SUM(Liter),0) AS TotalLiter
                   FROM      dbo.Transactions  (nolock) AS Transactions_4
                   WHERE   (StationID = s.StationID) AND (SaleDate >= CONVERT(date, GETDATE())) AND (FuelTypeID = 9)) AS Total9,
                  (SELECT TOP (1) ISNULL(SUM(Liter),0) AS TotalLiter
                   FROM      dbo.Transactions  (nolock) AS Transactions_3
                   WHERE   (StationID = s.StationID) AND (SaleDate >= CONVERT(date, GETDATE())) AND (FuelTypeID = 10)) AS Total10,
                  (SELECT TOP (1) ISNULL(SUM(Liter),0) AS TotalLiter
                   FROM      dbo.Transactions  (nolock) AS Transactions_2
                   WHERE   (StationID = s.StationID) AND (SaleDate >= CONVERT(date, GETDATE()))) AS GrandTotal,
                  (SELECT TOP (1) MAX(SaleDate) AS LastSaleDate
                   FROM      dbo.Transactions (nolock) AS Transactions_1
WHERE   (StationID = s.StationID) AND (SaleDate >= CONVERT(date, GETDATE()))
                   ORDER BY LastSaleDate) AS LastSaleDate 
FROM    
    dbo.Stations (nolock) AS s 
WHERE 
    s.StationCode BETWEEN 1000 AND 1100 
ORDER BY 
    StationID

```