Добрый день.
Не могу понять как мне написать в Екселе вложенный запрос. Один запрос я написал, потом вроде бы понимаю как написать второй запрос, но как это сделать в одном не знаю.
1.
Sub План_факт()
Dim StMyDate As String
Dim BStatistics As Workbook
Dim BStatisticsR As Worksheet, BStatisticsN As Worksheet
Set BStatisticsN = Worksheets("План_факт")
Dim wb As String, strsql As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
wb = ActiveWorkbook.FullName
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & wb & ";Extended Properties=""Excel 12.0 Xml;HDR=YES"";"
strsql = "SELECT [Report$].[Филия] AS Филия, [Report$].[Канал продаж] AS Канал,[Report$].[Месяц] AS Месяц,[Report$].[Год] AS Год, Count([Report$].[Филия]) AS Факт " & _
"FROM [Report$] " & _
"GROUP BY [Report$].[Филия],[Report$].[Канал продаж],[Report$].[Месяц],[Report$].[Год]"
Set rs = New ADODB.Recordset
rs.Open strsql, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
With BStatisticsN
.Rows("2:30000").Clear
.Range("A2").CopyFromRecordset rs
End With
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
2. Запрос
strsql = "SELECT [Факт$]*, Sum(IIf(([Планы_агр$].[Месяц]=[Факт$].[Месяц] And [Планы_агр$].[Филия]=[Факт$].[Филия] And [Планы_агр$].[Канал продаж]=[Факт$].[Канал продаж]),[Факт$].[Факт],0)) AS План