I am new to vb.net so bear with me. I have some managable tables in ms access database. I am trying to write a sql query that will give me following output:
table1 ( columnA - columnB) table2 ( columnA - columnB) table3 ( columnA - columnB)
I have column name "column A" and “column B" in all tables.
I want to retrieve tables name and sum of (column A – column B) of all tables. When I run the sql statement I get the following error:
The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect
Can someone help me to write a sql query please?
Here is my full code:
Dim con As New OleDbConnection(" Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\msacc.accdb")
Dim Query2 As String = " SELECT Table1 AS Table, SUM(a) - SUM(b) AS Result FROM table1 UNION SELECT Table2, SUM(a) - SUM(b) FROM table2 UNION SELECT Table3, SUM(a) - SUM(b) FROM table3"
Dim Da As OleDbDataAdapter, Ds As New DataSet, Dtb As New System.Data.DataTable
con.Open()
Da = New OleDbDataAdapter(Query2, con)
Da.Fill(Ds)
con.Close()
Dtb = Ds.Tables(0)
DataGridView1.DataSource = Dtb
If understand correctly you're probably looking for this
'Table1', Table2, 'Table3')[] around an alias that is a reserved word ([Table])UNION ALL instead of UNION since you don't need to eliminate any duplicates in your resultsetSELECT 'Table1' AS [Table], SUM(a) - SUM(b) AS Result
FROM table1
UNION ALL
SELECT 'Table2', SUM(a) - SUM(b)
FROM table2
UNION ALL
SELECT 'Table3', SUM(a) - SUM(b)
FROM table3
Here is SQLFiddle demo (SQL Server) The query itself will work in MS Access just fine
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With