Hi there again, have been puzzling this query and haven't quite got it. Below is where I am up to and below that is the result. It returns the line total and not the column total, any help appreciated.
SELECT TOP (100) PERCENT 'SA' AS Doc_Type1,
'A' + SUBSTRING('000000', 1, 6 - LEN(CAST(dbo.companies.companyId AS VARCHAR(10)))) + CAST(dbo.companies.companyId AS VARCHAR(10)) AS Client_ID,
1200 AS [Bank Nom],
0 AS Department,
CONVERT(nvarchar(20), dbo.invoices.invoiceDatePaid, 103) AS Cleared_Date,
'Chq PS £' + CAST(SUM(dbo.invoices.invoiceTotal) AS VARCHAR) AS Payment_type,
dbo.invoices.invoiceId,
SUM(DISTINCT dbo.invoices.invoiceTotal) AS Value,
'9' AS vat,
' ' AS bllank,
1 AS Ex_rate
FROM dbo.invoices
INNER JOIN dbo.companies
ON dbo.invoices.invoiceCompanyId = dbo.companies.companyId
GROUP BY dbo.companies.companyId,
dbo.invoices.invoiceId,
dbo.invoices.invoiceDatePaid,
dbo.companies.companyPaymentType
HAVING (
dbo.invoices.invoiceDatePaid >= DATEDIFF(DAY, 1, CURRENT_TIMESTAMP)
)
AND
(
dbo.invoices.invoiceDatePaid < DATEDIFF(DAY, 0, CURRENT_TIMESTAMP)
)
AND
(
dbo.companies.companyPaymentType = 2
)
RESULTING VIEW
Doc_Type1 client_id |Bank Nom |Department |Cleared_Date |Payment_type |invoiceid |Value |vat |bllank |Ex_rate
-----------------------------------------------------------------------------------------------------------------
SA A005014 1200 0 24/06/2010 Chq PS £232.92 43237 232.92 9 1
SA A005419 1200 0 24/06/2010 Chq PS £257.27 43427 257.27 9 1
SA A005611 1200 0 24/06/2010 Chq PS £255.84 43519 255.84 9 1
do i need some sort of sub routine here??
i have tried to do this and come up with this routine, but it seems untidy!! SELECT TOP (100) PERCENT 'SA' AS Doc_Type1, 'A' + SUBSTRING('000000', 1, 6 - LEN(CAST(companies_1.companyId AS varchar(10)))) + CAST(companies_1.companyId AS varchar(10)) AS Client_ID, 1200 AS Bank_Nom, 0 AS Department, CONVERT(nvarchar(20), invoices_1.invoiceDatePaid, 103) AS Cleared_Date, (SELECT 'Bacs £' + CAST(SUM(CONVERT(float, dbo.invoices.invoiceTotal)) AS varchar(20)) AS Payment_type FROM dbo.invoices INNER JOIN dbo.companies ON dbo.invoices.invoiceCompanyId = dbo.companies.companyId WHERE (dbo.invoices.invoiceDatePaid >= DATEDIFF(DAY, 1, CURRENT_TIMESTAMP)) AND (dbo.invoices.invoiceDatePaid < DATEDIFF(DAY, 0, CURRENT_TIMESTAMP)) AND (dbo.companies.companyPaymentType = 3)) AS Payment_type, invoices_1.invoiceId, invoices_1.invoiceTotal AS Value, '9' AS vat, ' ' AS bllank, 1 AS Ex_rate FROM dbo.invoices AS invoices_1 INNER JOIN dbo.companies AS companies_1 ON invoices_1.invoiceCompanyId = companies_1.companyId WHERE (invoices_1.invoiceDatePaid >= DATEDIFF(DAY, 1, CURRENT_TIMESTAMP)) AND (invoices_1.invoiceDatePaid < DATEDIFF(DAY, 0, CURRENT_TIMESTAMP)) AND (companies_1.companyPaymentType = 3) ORDER BY invoices_1.invoiceId DESC
but it works