Я запускаю следующий SQL в базе данных Access, и результаты возвращаются из подзапросов.
Select b.PlannedDescription ,
(SELECT SUM(c.PlannedAmount) FROM DT_PLANNED_TRANSACTION c
WHERE(c.PlannedDate)>=#2018/08/01# And (c.PlannedDate)<=#2018/09/05#
And c.PlannedDescription = b.PlannedDescription
And (c.PlannedType)='P'
) AS [Planned],
(SELECT SUM(a.PlannedAmount) As Amount FROM DT_PLANNED_TRANSACTION A
WHERE(a.PlannedDate)>=#2018/08/01# And (a.PlannedDate)<=#2018/09/05#
And a.PlannedDescription = b.PlannedDescription
And (a.PlannedType)='A'
) AS [Actual]
From DT_PLANNED_TRANSACTION As b
Where ((b.PlannedType) ='A' AND (b.PlannedDate)>=#2018/08/01# And (b.PlannedDate)<=#2018/09/05#)
GROUP BY b.PlannedDescription
Когда я запускаю его в Visual Studio, подзапросы возвращают 0?
Public Sub uspLoad(ByVal DateFrom As Date, ByVal DateTo As Date)
ds.Tables.Add("tbComparison")
ds.Tables("tbComparison").Columns.Add("PlannedDescription", GetType(String))
ds.Tables("tbComparison").Columns.Add("Planned", GetType(Decimal))
ds.Tables("tbComparison").Columns.Add("Actual", GetType(Decimal))
Dim connectionString As String = My.Settings.ConnString
Dim sql As String =
"Select b.PlannedDescription,
(SELECT SUM(c.PlannedAmount) FROM DT_PLANNED_TRANSACTION c
WHERE(c.PlannedDate)>=#" & Format(DateFrom, "yyyy/MM/dd") & "# And (c.PlannedDate)<=#" & Format(DateTo, "yyyy/MM/dd") & "#
And c.PlannedDescription = b.PlannedDescription
And (c.PlannedType)='P'
) AS [Planned],
(SELECT SUM(a.PlannedAmount) FROM DT_PLANNED_TRANSACTION A
WHERE(a.PlannedDate)>=#" & Format(DateFrom, "yyyy/MM/dd") & "# And (a.PlannedDate)<=#" & Format(DateTo, "yyyy/MM/dd") & "#
And a.PlannedDescription = b.PlannedDescription
And (a.PlannedType)='A'
) AS [Actual]
From DT_PLANNED_TRANSACTION As b
Where ((b.PlannedType) ='A' AND (b.PlannedDate)>=#" & Format(DateFrom, "yyyy/MM/dd") & "# And (b.PlannedDate)<=#" & Format(DateTo, "yyyy/MM/dd") & "#)
GROUP BY b.PlannedDescription"
Dim connection As New OleDbConnection(connectionString)
Dim dataadapter As New OleDbDataAdapter(sql, connection)
connection.Open()
dataadapter.Fill(ds, "tbComparison")
connection.Close()
DataGridView1.DataSource = ds.Tables("tbComparison")
Я пытался привести возвращаемые значения, но он все еще не работает. Я также подумал, что это может быть представление данных, но набор данных также возвращает нули. Есть идеи?
ТИА