///////// FINAL ///////////// 28/05/2006 RJC. SELECT * FROM (SELECT FT1.*, tCustomer.ShipTo, tServiceID.ServiceID, tServiceType.Code, tServiceType.Description AS "ServiceType", SUBSTRING(tTransactionGroup.Description,1,10) AS "TransactionGroup", tTransactionType.Description AS "TransactionType" FROM (SELECT tFinalisedTransaction.ServiceID AS "SID", tFinalisedTransaction.BatchID, SUBSTRING(tBatch.BillingPeriod,1,7) AS "BillingPeriod", tFinalisedTransaction.TransactionTypeID, CAST(tFinalisedTransaction.RevenueFlag AS int) AS "RevenueFlag", tFinalisedTransaction.CustomerID, tFinalisedTransaction.ServiceTypeID, Sum(tFinalisedTransaction.AmountExGST) AS "AmountExGST", Sum(tFinalisedTransaction.GSTAmount) AS "GSTAmount", Sum(tFinalisedTransaction.AmountIncGST) AS "AmountIncGST" FROM tFinalisedTransaction LEFT JOIN tServiceID ON tFinalisedTransaction.ServiceID = tServiceID.ID LEFT JOIN tBatch ON tFinalisedTransaction.BatchID = tBatch.ID WHERE tServiceID.ServiceID LIKE '03-86025000' AND tFinalisedTransaction.RevenueFlag = 0 GROUP BY tBatch.BillingPeriod, tFinalisedTransaction.BatchID, tFinalisedTransaction.ServiceID, tFinalisedTransaction.TransactionTypeID, CAST(tFinalisedTransaction.RevenueFlag AS int), tFinalisedTransaction.CustomerID, tFinalisedTransaction.ServiceTypeID) AS FT1 INNER JOIN tCustomer ON FT1.CustomerID = tCustomer.ID INNER JOIN tServiceID ON FT1.SID = tServiceID.ID LEFT OUTER JOIN tServiceType ON FT1.ServiceTypeID = tServiceType.ID LEFT JOIN (tTransactionType INNER JOIN tTransactionGroup ON tTransactionType.TransactionGroupID = tTransactionGroup.ID) ON FT1.TransactionTypeID = tTransactionType.ID WHERE tTransactionGroup.Description NOT LIKE 'ADMIN') AS FT ORDER BY ServiceID, BillingPeriod, BatchID ///////// ORIGINAL ////////// SELECT * FROM (SELECT tFinalisedTransaction.RevenueFlag, tFinalisedTransaction.BatchID, tBatch.BillingPeriod, tFinalisedTransaction.CustomerID, tCustomer.ShipTo, tServiceID.ServiceID, tFinalisedTransaction.ServiceTypeID, tServiceType.Code, tServiceType.Description AS ServiceType, tFinalisedTransaction.AmountExGST, tTransactionGroup.Description AS TransactionGroup, tTransactionType.Description AS TransactionType FROM tFinalisedTransaction INNER JOIN tServiceID ON tFinalisedTransaction.ServiceID = tServiceID.ID // LEFT JOIN (tBatch INNER JOIN tSupplier ON tBatch.SupplierID = tSupplier.ID) ON tFinalisedTransaction.BatchID = tBatch.ID LEFT JOIN tBatch ON tFinalisedTransaction.BatchID = tBatch.ID LEFT JOIN (tTransactionType INNER JOIN tTransactionGroup ON tTransactionType.TransactionGroupID = tTransactionGroup.ID) ON tFinalisedTransaction.TransactionTypeID = tTransactionType.ID INNER JOIN tCustomer ON tFinalisedTransaction.CustomerID = tCustomer.ID LEFT OUTER JOIN tServiceType ON tFinalisedTransaction.ServiceTypeID = tServiceType.ID LEFT OUTER JOIN tElement ON tServiceType.ExpenseElementID = tElement.ID WHERE tServiceID.ServiceID LIKE '03-86025000' AND tFinalisedTransaction.RevenueFlag = 0 AND tTransactionGroup.Description NOT LIKE 'ADMIN') AS FT ORDER BY ServiceID, BillingPeriod ///////// GROUP ///////////// SELECT tFinalisedTransaction.ServiceID AS "SID", tFinalisedTransaction.BatchID, SUBSTRING(tBatch.BillingPeriod,1,7) AS "BillingPeriod", tFinalisedTransaction.TransactionTypeID, CAST(tFinalisedTransaction.RevenueFlag AS int) AS "RevenueFlag", tFinalisedTransaction.CustomerID, tFinalisedTransaction.ServiceTypeID, Sum(tFinalisedTransaction.AmountExGST) AS "AmountExGST", Sum(tFinalisedTransaction.GSTAmount) AS "GSTAmount", Sum(tFinalisedTransaction.AmountIncGST) AS "AmountIncGST" FROM tFinalisedTransaction LEFT JOIN tServiceID ON tFinalisedTransaction.ServiceID = tServiceID.ID LEFT JOIN tBatch ON tFinalisedTransaction.BatchID = tBatch.ID WHERE tServiceID.ServiceID LIKE '03-86025000' AND tFinalisedTransaction.RevenueFlag = 0 GROUP BY tBatch.BillingPeriod, tFinalisedTransaction.BatchID, tFinalisedTransaction.ServiceID, tFinalisedTransaction.TransactionTypeID, CAST(tFinalisedTransaction.RevenueFlag AS int), tFinalisedTransaction.CustomerID, tFinalisedTransaction.ServiceTypeID ////////// WITH GROUP ///////// SELECT * FROM ( SELECT FT1.*, tCustomer.ShipTo, tServiceID.ServiceID, tServiceType.Code, tServiceType.Description AS "ServiceType", SUBSTRING(tTransactionGroup.Description,1,10) AS "TransactionGroup", tTransactionType.Description AS "TransactionType" FROM ( SELECT tFinalisedTransaction.ServiceID AS "SID", tFinalisedTransaction.BatchID, SUBSTRING(tBatch.BillingPeriod,1,7) AS "BillingPeriod", tFinalisedTransaction.TransactionTypeID, CAST(tFinalisedTransaction.RevenueFlag AS int) AS "RevenueFlag", tFinalisedTransaction.CustomerID, tFinalisedTransaction.ServiceTypeID, Sum(tFinalisedTransaction.AmountExGST) AS "AmountExGST", Sum(tFinalisedTransaction.GSTAmount) AS "GSTAmount", Sum(tFinalisedTransaction.AmountIncGST) AS "AmountIncGST" FROM tFinalisedTransaction LEFT JOIN tServiceID ON tFinalisedTransaction.ServiceID = tServiceID.ID LEFT JOIN tBatch ON tFinalisedTransaction.BatchID = tBatch.ID WHERE tServiceID.ServiceID LIKE '03-86025000' AND tFinalisedTransaction.RevenueFlag = 0 GROUP BY tBatch.BillingPeriod, tFinalisedTransaction.BatchID, tFinalisedTransaction.ServiceID, tFinalisedTransaction.TransactionTypeID, CAST(tFinalisedTransaction.RevenueFlag AS int), tFinalisedTransaction.CustomerID, tFinalisedTransaction.ServiceTypeID ) AS FT1 INNER JOIN tCustomer ON FT1.CustomerID = tCustomer.ID INNER JOIN tServiceID ON FT1.SID = tServiceID.ID LEFT OUTER JOIN tServiceType ON FT1.ServiceTypeID = tServiceType.ID LEFT JOIN (tTransactionType INNER JOIN tTransactionGroup ON tTransactionType.TransactionGroupID = tTransactionGroup.ID) ON FT1.TransactionTypeID = tTransactionType.ID WHERE tTransactionGroup.Description NOT LIKE 'ADMIN' ) AS FT ORDER BY ServiceID, BillingPeriod, BatchID