Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Импорт таблицы Excel в БД Access через VBA через кнопку в Excel

Форумчане, помогите, пожалуйста с кодом макроса в excel.
Задача состоит в следующем:в файле обработчик через кнопку импортировать данные с листа excel в базу данных access. При чем должен импортироваться файл, путь которого указывается в файле "обработчик".

Сейчас у меня есть такая операция, только в базе access, а надо сделать то же самое, только через excel.
Пробовала код из access прогнать в excel, но не получается.
Помогите, пожалуйста, все файлы прикладываю
Ответ: Спасибо большое!
Вопрос: Ошибка при импорте из Excel

Недавно начал изучать Access, но база нужна была "еще вчера", поэтому вопрос, может и смешной, но сам еще не смог разобраться
Есть заготовка базы, в которую регулярно должны импортироваться данные из файла Excel. Данные всегда добавляются в базу к предыдущим. При импорте ошибка, и удаляются нужные поля, и их надо заполнять потом вручную (а импорт может быть очень большим). Я понимаю, что это как-то связанно с ключами, но, за 2 дня, так и не понял в чём именно дело. Собственно, почему возникает эта ошибка, и как ее избежать, чтобы регулярно импортировать файлы Excel в таком виде?
База и файл импорта в приложении.
Ответ: Проблему, можно сказать Вы себе создали сами :-). Вы использовали в таблице поля подстановки из справочников и они показывали Вам знакомый текст. А на самом деле поля в таблице числовые и засунуть туда текст из екселя никак невозможно. Я в запросе, в коде ВБА, соединил справочники с таблицей Complectation по полям связи и подставлял в запрос на вставку уже числовые значения из справочников.

Вот такие они подлые эти поля подстановок. Все подстановки надо делать в формах. Не в таблицах. Таблица хранилище данных и только в этой ипостаси их надо использовать.
Вопрос: Экспорт данных из запроса Access в ячейки шаблона Excel

Из поста

Как подключить мой шаблон?
если запрос
SQL
1
2
3
4
5
6
7
8
9
SELECT ИзделияДетали.Изделия, ИзделияДетали., ИзделияДетали.Детали,
 ИзделияДетали.Обозначение, ИзделияДетали.Профиль, ИзделияДетали.Марка,
 ИзделияДетали.МЗ, ИзделияДетали.Кол, ИзделияДетали.МД, ИзделияДетали.Примечание,
 Изделия.Изделия, Изделия.Тип, Изделия.Шифр, Изделия.Паспорт, Изделия.ДатаИзменений
 
FROM Изделия
 INNER JOIN ИзделияДетали
   ON Изделия.Изделия = ИзделияДетали.Изделия
ORDER BY ИзделияДетали.№;
"

Visual Basic
1
2
stLinkCriteria = Me.li.Column(0)
a = stLinkCriteria
и вставить результат в определенные ячейки?

Добавлено через 18 часов 2 минуты
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Private Sub КнПаспорт_Click()
On Error GoTo Err_КнПаспорт_Click
Dim app As Excel.Application
Dim strDOT As String
  Dim stLinkCriteria As String
Dim MyTable As DAO.Recordset
'для включения библиотеки ексель жмем- Tools-References- Microsoft Excel 11
 
'в переменные a и b мы заносим данные из импут бокса, дальше будем их использовать в запросе:
 
 
'Открываем эксель, в нем книгу на основе шаблона:
Set app = New Excel.Application
app.Visible = True
'шаблон с именем Шаблон Первич Свед хранится в тойже дерриктории что и БД:
strDOT = CurrentProject.Path & "" & "Pasport.xlt"
stLinkCriteria = Me.li.Column(0)
app.Workbooks.Add strDOT
 
 
Set MyTable = CurrentDb.OpenRecordset("SELECT ИзделияДетали.Изделия, ИзделияДетали.№, ИзделияДетали.Детали, ИзделияДетали.Обозначение, ИзделияДетали.Профиль, ИзделияДетали.Марка, ИзделияДетали.МЗ, ИзделияДетали.Кол, ИзделияДетали.МД, ИзделияДетали.Примечание, Изделия.Изделия, Изделия.Тип, Изделия.Шифр, Изделия.Паспорт, Изделия.ДатаИзменений FROM Изделия INNER JOIN ИзделияДетали ON Изделия.Изделия = ИзделияДетали.Изделия ORDER BY ИзделияДетали.№; HAVING ИзделияДетали.Изделия = '" & stLinkCriteria & "")
 
'Ввод данных для первой страницы екселя
With app.ActiveWorkbook.Sheets(1)
 
'Вставка в ячейку ad8 первой страницы и тд
 
.[BF2] = CStr(MyTable.Fields("ИзделияДетали.Изделия"))
.[BF3] = CStr(MyTable.Fields("ИзделияДетали.Детали"))
.[BF4] = CStr(MyTable.Fields("ИзделияДетали.Обозначение"))
 
End With
 
MyTable.Close
 
Exit_КнПаспорт_Click:
    Exit Sub
 
Err_КнПаспорт_Click:
    MsgBox Err.Description
    Resume Exit_КнПаспорт_Click
    
End Sub
Ошибка: Excel открывается, данные не подставляются - Обнаружены символы за пределами инструкции SQl ?
Ответ:
Сообщение от alvk
какие null?
Excel открывается, заносятся данные, по но один запрос в таблице не заполнен "ТолщинаСтенкиКорпуса"

Visual Basic
1
.[BE14] = CStr(MyTable.Fields("ТолщинаСтенкиКорпуса"))
поэтому и выдает ошибку "Invalid use of null"

вот код целиком:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Private Sub КнПаспорт_Click()
On Error GoTo Err_КнПаспорт_Click
Dim app As Excel.Application
Dim strDOT As String
  Dim stLinkCriteria As String
Dim MyTable As DAO.Recordset
'для включения библиотеки ексель жмем- Tools-References- Microsoft Excel 11
 
'в переменные a и b мы заносим данные из импут бокса, дальше будем их использовать в запросе:
 
 
'Открываем эксель, в нем книгу на основе шаблона:
Set app = New Excel.Application
app.Visible = True
'шаблон с именем Шаблон Первич Свед хранится в тойже дерриктории что и БД:
strDOT = CurrentProject.Path & "\Dot" & "Pasport.xlt"
 
stLinkCriteria = Me.li.Column(0)
app.Workbooks.Add strDOT
 
Set MyTable = CurrentDb.OpenRecordset("SELECT Изделия.Изделия, Изделия.Тип, Изделия.Паспорт, Изделия.Руководство, " _
& "Изделия.Шифр, Изделия.КлиматическоеИсполнение, Изделия.Масса, Изделия.ГабаритныеРазмеры, " _
& "Изделия.ПрисоединительныеРазмеры, Изделия.ТолщинаСтенкиКорпуса, Изделия.ДатаИзменений " _
& "FROM Изделия " _
& "WHERE Изделия = '" & stLinkCriteria & "' " _
& "ORDER BY Изделия.Изделия")
 
'Ввод данных для первой страницы екселя
With app.ActiveWorkbook.Sheets(1)
 
'Вставка в ячейки первой страницы и тд
 
.[BE5] = CStr(MyTable.Fields("Изделия"))
.[BE6] = CStr(MyTable.Fields("Тип"))
.[BE7] = CStr(MyTable.Fields("Паспорт"))
.[BE8] = CStr(MyTable.Fields("Руководство"))
.[BE9] = CStr(MyTable.Fields("Шифр"))
.[BE10] = CStr(MyTable.Fields("КлиматическоеИсполнение"))
.[BE11] = CStr(MyTable.Fields("Масса"))
.[BE12] = CStr(MyTable.Fields("ГабаритныеРазмеры"))
.[BE13] = CStr(MyTable.Fields("ПрисоединительныеРазмеры"))
.[BE14] = CStr(MyTable.Fields("ТолщинаСтенкиКорпуса"))
 
End With
 
MyTable.Close
 
Exit_КнПаспорт_Click:
    Exit Sub
 
Err_КнПаспорт_Click:
    MsgBox Err.Description
    Resume Exit_КнПаспорт_Click
    
End Sub
Вопрос: SSRS2012 строковое поле и импорте в Excel

Добрый день!
SSRS2012
Из dataset (хранимка MS SQL) возвращается поле типа varchar в котором может лежать в 99% числовое поле и в оставшихся случаях какой нибудь левый символ , к примеру #
Хотелось бы, что бы при импорте в Excel из SSRS число воспринималось Excel как число (т е над ним можно было оперировать простейшими мат операциями) А так (как бы не шаманил форматом в SSRS ) оно ложится в Excel в формате General
Понятно, что можно поменять формат в самом Excel уже постфактумом (после выгрузки) - но это не устраивает
Подскажите пожалуйста, есть ли способ победить проблему ?

Спасибо!
Ответ: Получилось так:
1) Установить экспрешн
=IIF(IsNumeric(Fields!FLD.Value),CDec(IIF(IsNumeric(Fields!FLD.Value),Fields!FLD.Value,0)),Fields!FLD.Value)

2) В пропертях FLD в св ве Format установить нумерический формат НЕ ИСПОЛЬЗУЯ ф-ции Format и ее производных , а например так N2

В итоге:
1)Отображаются и численные и строковые значения в нормальном формате
2)В Excel возможны операции над числовыми значениями
Вопрос: Импорт таблиц из access в excel

Помогите пожалуйста с макросом, нужно перенести таблицу из access в определенные столбцы excel.
Офис 2016
Ответ: К сожалению Вы не описали многих важных параметров. Таких как имя листа, номер строки с которой надо заполнять, в какие столбцы. Пришлось (захотелось ) сделать более или менее общую форму для заполнения. Тоже конечно не универсальную: надо самому писать имя листа, а не выбирать из списка, также предполагается, что ексель-файл находится в той же папке, что и БД.

На форме пишете имя листа екселя, номер строки с которой надо начинать писать. Выбираете в списке имя поля и в поле справа пишете имя столбца Excel, типа A, D, XY. В ненужных полях ничего не пишете. Затем нажимаете кнопку и инфа попадет в Excel.
Вопрос: Импорт таблицы excel в access

Всем привет.

Очень нужна Ваша помощь! Есть таблица excel её нужно перенести в access через vba, т.е. нажал кнопку таблица уже в access создана или через макрос. Заранее спасибо
Ответ: помогите разобрать код

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
Sub SaveToMdb()
Dim mdb As String: mdb = ThisWorkbook.Path & "\DataBase.mdb"
Dim SourceSheet As Worksheet
Dim ItemIndex As Long
Dim KDTemp, GrbsT As String
Dim KeyMAX As Long
Dim Ans As Integer
 
MonthN = CStr(Format(ActiveWorkbook.Worksheets(1).Range("E3").Value, "mmmm"))
GrbsT = ActiveWorkbook.Worksheets(1).Range("C5").Value
OrgName = ActiveWorkbook.Worksheets(1).Range("C6").Value
KDTemp = ActiveWorkbook.Worksheets(1).Range("C8").Value
'KoD = ActiveWorkbook.Worksheets(1).Range("C8").Value '+ Format(ActiveWorkbook.Worksheets(1).Range("E3"), "yyyy")'
'CStr(ThisWorkbook.Worksheets("СВОД").YearCh.Value)
 
If Cn.State = adStateClosed Then
    Cn.Provider = "Microsoft.Jet.OLEDB.4.0"
    Cn.CursorLocation = adUseClient
    Cn.Open mdb
End If
 
Set rs = Nothing
SQL = "SELECT * FROM " & KoD & " WHERE НазванОрг='" & OrgName & _
"' AND Месяц='" & MonthN & "';"
rs.Open SQL, Cn
If rs.RecordCount <> 0 Then
    Ans = MsgBox("Данные по " & OrgName & " за " & MonthN & " уже загруженны. ЗАМЕНИТЬ???", vbOKCancel)
    Select Case Ans
        Case vbOK
            Set rs = Nothing
            SQL = "DELETE * FROM " & KoD & " WHERE НазванОрг='" & OrgName & _
            "' AND Месяц='" & MonthN & "';"
            rs.Open SQL, Cn
        Case vbCancel
            GoTo Ends
    End Select
End If
Set rs = Nothing
SQL = "ALTER TABLE " & KoD & " ALTER COLUMN Ключ COUNTER(1,1);"
rs.Open SQL, Cn
Set rs = Nothing
SQL = "SELECT MAX(Ключ) As Keys FROM " & KoD & ";"
rs.Open SQL, Cn
On Error GoTo ERRH1
KeyMAX = rs.Fields("Keys").Value
 
'On Error GoTo Ends
Set rs = Nothing
rs.Open KoD, Cn, adOpenDynamic, adLockOptimistic, adCmdTable
Set SourceSheet = ActiveWorkbook.Worksheets(1)
With SourceSheet
    For ItemIndex = 9 To .Cells(Rows.Count, 1).End(xlUp).Row
    KeyMAX = KeyMAX + 1
    rs.AddNew
    rs.Fields("Ключ") = KeyMAX
    rs.Fields("НазванОрг") = OrgName
    rs.Fields("Месяц") = MonthN
    rs.Fields("ГРБС") = GrbsT
    rs.Fields("БухСчет") = .Cells(ItemIndex, 1).Value
    rs.Fields("КОСГУ") = .Cells(ItemIndex, 2).Value
    rs.Fields(KDTemp) = .Cells(ItemIndex, 3).Value
    rs.Fields("Сумма") = .Cells(ItemIndex, 4).Value
    rs.Fields("ДатаВозн") = .Cells(ItemIndex, 5).Value
    rs.Fields("ДатаПог") = .Cells(ItemIndex, 6).Value
    rs.Fields("Примечание") = .Cells(ItemIndex, 7).Value
    rs.Update
    Next ItemIndex
End With
Set rs = Nothing
 
MonthN = CStr(Format(ActiveWorkbook.Worksheets(2).Range("E3").Value, "mmmm"))
GrbsT = ActiveWorkbook.Worksheets(2).Range("C5").Value
OrgName = ActiveWorkbook.Worksheets(2).Range("C6").Value
KDTemp = ActiveWorkbook.Worksheets(2).Range("C8").Value
KoD = ActiveWorkbook.Worksheets(2).Range("C8").Value + CStr(ThisWorkbook.Worksheets("СВОД").YearCh.Value)
 
Set rs = Nothing
SQL = "DELETE * FROM " & KoD & " WHERE НазванОрг='" & OrgName & _
"' AND Месяц='" & MonthN & "';"
rs.Open SQL, Cn
Set rs = Nothing
SQL = "ALTER TABLE " & KoD & " ALTER COLUMN Ключ COUNTER(1,1);"
rs.Open SQL, Cn
Set rs = Nothing
SQL = "SELECT MAX(Ключ) As Keys FROM " & KoD & ";"
rs.Open SQL, Cn
On Error GoTo ERRH1
KeyMAX = rs.Fields("Keys").Value
 
'On Error GoTo Ends
Set rs = Nothing
rs.Open KoD, Cn, adOpenDynamic, adLockOptimistic, adCmdTable
Set SourceSheet = ActiveWorkbook.Worksheets(2)
With SourceSheet
    For ItemIndex = 9 To .Cells(Rows.Count, 1).End(xlUp).Row
    KeyMAX = KeyMAX + 1
    rs.AddNew
    rs.Fields("Ключ") = KeyMAX
    rs.Fields("НазванОрг") = OrgName
    rs.Fields("Месяц") = MonthN
    rs.Fields("ГРБС") = GrbsT
    rs.Fields("БухСчет") = .Cells(ItemIndex, 1).Value
    rs.Fields("КОСГУ") = .Cells(ItemIndex, 2).Value
    rs.Fields(KDTemp) = .Cells(ItemIndex, 3).Value
    rs.Fields("Сумма") = .Cells(ItemIndex, 4).Value
    rs.Fields("ДатаВозн") = .Cells(ItemIndex, 5).Value
    rs.Fields("ДатаПог") = .Cells(ItemIndex, 6).Value
    rs.Fields("Примечание") = .Cells(ItemIndex, 7).Value
    rs.Update
    Next ItemIndex
End With
MsgBox "Данные успешно соxранены в mdb файл"
GoTo Ends
ERRH1:
    KeyMAX = 0
    Err.Clear
    Resume Next
Ends:
    Err.Clear
    Set rs = Nothing
    If Not rs.State = adStateClosed Then rs.Close
    Set SourceSheet = Nothing
    Cn.Close: Set Cn = Nothing
End Sub
Вопрос: Импорт таблицы excel в БД access 2003

Форумчане, доброго времени суток!

Как запустить процедуру импорта в БД Аксесс кнопкой?

Импортируемый файл скорее всего будет с расширением ".xls"
из файла .xls импортируется лист с наименованием "Сопровождение"
Директория, в которой находится файл .xls скорее всего будет: "D:\Папка1"
Наименование файла будет разное (можно, конечно переименовывать-но это дополнительные сложности)


Подскажите,пожалуйста, как это сделать?
Ответ: ankan, конвертировать PCB в mdb напрямую это значит копаться в кишках PCB с весьма значительными затратами времени. Для меня явно непроизводительных.
Проще найти в сети конвертор PCB в популярный тип, например в XLS и уже из екселя брать данные.
Вопрос: Запрос стал работать долго...

Доброго дня!

Был вот такой запрос:
+
select cr.t_creditnumber
  from rsuser.dcredit_c_dbt cr,
       (select dod.t_creditnumber_ref,
               nvl(max(decode(dt.t_typeopername,
                              'Закрытие договора',
                              'C')),
                   max(decode(dt.t_typeopername,
                              'Открытие договора',
                              'O')))
          from rsuser.dcrd_op_dbt dod, rsuser.dtype_op_dbt dt
         where dod.t_opertypenumber_ref = dt.t_typeopernumber
           and ((dt.t_typeopername = 'Открытие договора' and
               dod.t_credoperdate <= '28.01.2015') or
               (dt.t_typeopername = 'Закрытие договора' and
               dod.t_credoperdate between '28.01.2015' and '28.01.2015'))
           and dod.t_isdeleted = 0
           and dod.t_stageid_ref = 99
         group by dod.t_creditnumber_ref) stts
 where cr.t_crd_kind = 1
   and cr.t_creditnumber = stts.t_creditnumber_ref
   and not exists
 (select 1
          from rsuser.DLUFOTYPE_DBT t, rsuser.dlufvalue_dbt v
         where t.t_objectid_ref = 1
           and v.t_usfobjtypeid_ref = t.t_usfobjtypeid
           and v.t_isoperating = 'X'
           and t.t_objid_ref = cr.t_creditnumber --
           and staging.dwh_service_functions.clear_ctrl_char(v.t_usfieldvalue) = 'А'
           and t.t_usfieldid_ref = 30123)
   and exists
 (select 1
          from rsuser.dcredit_c_dbt crd,
               rsuser.dacc_crd_dbt dacc,
               rsuser.dturn_acc_dbt trn,
               rsuser.dsb_acc_dbt dsb,
               (select replace(t3.t_balance2, chr(1)) t_balance2,
                       t3.t_account
                  from rsuser.daccblnc_dbt t3
                union all
                select replace(t4.t_balance2, chr(1)) t_balance2,
                       t4.t_account
                  from rsuser.daccblnc$_dbt t4
                 where not exists (select 1
                          from rsuser.daccblnc_dbt t3
                         where t3.t_account = t4.t_account
                           and t3.t_chapter = t4.t_chapter)) bal,
               cb_settints_turn_last_day trn_ld
         where crd.t_creditnumber = cr.t_creditnumber --
           and dacc.t_objectid = 1
           and substr(bal.t_balance2, 1, 4) in
               ('1424', '1740', '1741', '1428', '7130', '6625')
           and trn.t_turnoverrest <> 0
           and crd.t_creditnumber = dacc.t_objectnumber
           and dacc.t_accountnumber_ref = trn.t_accountnumber_ref
           and trn.t_accountnumber_ref = dsb.t_accountnumber
           and dsb.t_odbaccount = bal.t_account
           and trn_ld.t_accountnumber_ref = dacc.t_accountnumber_ref
           and trn_ld.t_curcode = dacc.t_curcode
           and trn_ld.t_operdprt = dsb.t_operdprt
           and trn_ld.t_turnoverdate = trn.t_turnoverdate
        union all
        select 1
          from rsuser.dcredit_c_dbt crd,
               rsuser.dduty_crd_dbt dty,
               rsuser.dacc_crd_dbt  dacc,
               rsuser.dturn_acc_dbt trn,
               rsuser.dsb_acc_dbt   dsb,
               (select replace(t3.t_balance2, chr(1)) t_balance2,
                       t3.t_account
                  from rsuser.daccblnc_dbt t3
                union all
                select replace(t4.t_balance2, chr(1)) t_balance2,
                       t4.t_account
                  from rsuser.daccblnc$_dbt t4
                 where not exists (select 1
                          from rsuser.daccblnc_dbt t3
                         where t3.t_account = t4.t_account
                           and t3.t_chapter = t4.t_chapter)) bal,
               cb_settints_turn_last_day trn_ld
         where crd.t_creditnumber = cr.t_creditnumber --
           and dacc.t_objectid = 6
           and substr(bal.t_balance2, 1, 4) in ('1411', '1417')
           and trn.t_turnoverrest <> 0
           and crd.t_creditnumber = dty.t_creditnumber_ref
           and dty.t_dutyid = dacc.t_objectnumber
           and dacc.t_accountnumber_ref = trn.t_accountnumber_ref
           and trn.t_accountnumber_ref = dsb.t_accountnumber
           and dsb.t_odbaccount = bal.t_account
           and trn_ld.t_accountnumber_ref = dacc.t_accountnumber_ref
           and trn_ld.t_curcode = dacc.t_curcode
           and trn_ld.t_operdprt = dsb.t_operdprt
           and trn_ld.t_turnoverdate = trn.t_turnoverdate)


..работал быстро - весь набор возвращал за 2 минуты примерно. Вот его план:
+
Plan hash value: 924525683
 
----------------------------------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                                       | Name                      | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
----------------------------------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                                |                           |     1 |    13 |   233K  (1)| 00:00:31 |        |      |            |
|*  1 |  FILTER                                         |                           |       |       |            |          |        |      |            |
|   2 |   PX COORDINATOR                                |                           |       |       |            |          |        |      |            |
|   3 |    PX SEND QC (RANDOM)                          | :TQ10015                  |     1 |    13 |   233K  (1)| 00:00:31 |  Q1,15 | P->S | QC (RAND)  |
|   4 |     NESTED LOOPS                                |                           |     1 |    13 |   233K  (1)| 00:00:31 |  Q1,15 | PCWP |            |
|   5 |      NESTED LOOPS                               |                           |     1 |    13 |   233K  (1)| 00:00:31 |  Q1,15 | PCWP |            |
|   6 |       VIEW                                      | VW_SQ_1                   |  1272 |  6360 |   235K  (2)| 00:00:31 |  Q1,15 | PCWP |            |
|   7 |        HASH UNIQUE                              |                           |     1 |   264K|   235K (71)| 00:00:31 |  Q1,15 | PCWP |            |
|   8 |         PX RECEIVE                              |                           |     1 |   264K|   235K (71)| 00:00:31 |  Q1,15 | PCWP |            |
|   9 |          PX SEND HASH                           | :TQ10014                  |     1 |   264K|   235K (71)| 00:00:31 |  Q1,14 | P->P | HASH       |
|  10 |           HASH UNIQUE                           |                           |     1 |   264K|   235K (71)| 00:00:31 |  Q1,14 | PCWP |            |
|  11 |            UNION-ALL                            |                           |       |       |            |          |  Q1,14 | PCWP |            |
|  12 |             NESTED LOOPS                        |                           |  1246 |   260K| 69248   (1)| 00:00:10 |  Q1,14 | PCWP |            |
|* 13 |              HASH JOIN                          |                           |  1653 |   337K| 69248   (1)| 00:00:10 |  Q1,14 | PCWP |            |
|  14 |               BUFFER SORT                       |                           |       |       |            |          |  Q1,14 | PCWC |            |
|  15 |                PX RECEIVE                       |                           |  2024K|    63M|  2701   (1)| 00:00:01 |  Q1,14 | PCWP |            |
|  16 |                 PX SEND HASH                    | :TQ10005                  |  2024K|    63M|  2701   (1)| 00:00:01 |        | S->P | HASH       |
|  17 |                  TABLE ACCESS FULL              | CB_SETTINTS_TURN_LAST_DAY |  2024K|    63M|  2701   (1)| 00:00:01 |        |      |            |
|  18 |               PX RECEIVE                        |                           |    50M|  8447M| 66538   (1)| 00:00:09 |  Q1,14 | PCWP |            |
|  19 |                PX SEND HASH                     | :TQ10012                  |    50M|  8447M| 66538   (1)| 00:00:09 |  Q1,12 | P->P | HASH       |
|* 20 |                 HASH JOIN                       |                           |    50M|  8447M| 66538   (1)| 00:00:09 |  Q1,12 | PCWP |            |
|  21 |                  PX RECEIVE                     |                           |  1235K|    35M|  2137   (1)| 00:00:01 |  Q1,12 | PCWP |            |
|  22 |                   PX SEND BROADCAST             | :TQ10009                  |  1235K|    35M|  2137   (1)| 00:00:01 |  Q1,09 | P->P | BROADCAST  |
|  23 |                    PX BLOCK ITERATOR            |                           |  1235K|    35M|  2137   (1)| 00:00:01 |  Q1,09 | PCWC |            |
|* 24 |                     INDEX FAST FULL SCAN        | DACC_CRD_DBT_IDX2         |  1235K|    35M|  2137   (1)| 00:00:01 |  Q1,09 | PCWP |            |
|  25 |                  NESTED LOOPS                   |                           |    50M|  7007M| 64393   (1)| 00:00:09 |  Q1,12 | PCWP |            |
|* 26 |                   HASH JOIN                     |                           |   548K|    59M|  7164   (3)| 00:00:01 |  Q1,12 | PCWP |            |
|  27 |                    PX RECEIVE                   |                           | 41171 |  2814K|  1763   (8)| 00:00:01 |  Q1,12 | PCWP |            |
|  28 |                     PX SEND HASH                | :TQ10010                  | 41171 |  2814K|  1763   (8)| 00:00:01 |  Q1,10 | P->P | HASH       |
|  29 |                      BUFFER SORT                |                           |     1 |    13 |            |          |  Q1,10 | PCWP |            |
|  30 |                       VIEW                      |                           | 41171 |  2814K|  1763   (8)| 00:00:01 |  Q1,10 | PCWP |            |
|  31 |                        UNION-ALL                |                           |       |       |            |          |  Q1,10 | PCWP |            |
|  32 |                         BUFFER SORT             |                           |       |       |            |          |  Q1,10 | PCWC |            |
|  33 |                          PX RECEIVE             |                           |       |       |            |          |  Q1,10 | PCWP |            |
|  34 |                           PX SEND ROUND-ROBIN   | :TQ10000                  |       |       |            |          |        | S->P | RND-ROBIN  |
|* 35 |                            INDEX FAST FULL SCAN | DACCBLNC_DBT_INX3         | 41085 |  1003K|   936   (9)| 00:00:01 |        |      |            |
|* 36 |                         HASH JOIN ANTI          |                           |    86 |  4214 |   828   (6)| 00:00:01 |  Q1,10 | PCWP |            |
|  37 |                          BUFFER SORT            |                           |       |       |            |          |  Q1,10 | PCWC |            |
|  38 |                           PX RECEIVE            |                           |  8634 |   244K|   207   (9)| 00:00:01 |  Q1,10 | PCWP |            |
|  39 |                            PX SEND HASH         | :TQ10001                  |  8634 |   244K|   207   (9)| 00:00:01 |        | S->P | HASH       |
|* 40 |                             INDEX FAST FULL SCAN| DACCBLNC$_DBT_INX1        |  8634 |   244K|   207   (9)| 00:00:01 |        |      |            |
|  41 |                          PX RECEIVE             |                           |   702K|    13M|   602   (1)| 00:00:01 |  Q1,10 | PCWP |            |
|  42 |                           PX SEND HASH          | :TQ10007                  |   702K|    13M|   602   (1)| 00:00:01 |  Q1,07 | P->P | HASH       |
|  43 |                            PX BLOCK ITERATOR    |                           |   702K|    13M|   602   (1)| 00:00:01 |  Q1,07 | PCWC |            |
|  44 |                             INDEX FAST FULL SCAN| DACCBLNC_DBT_IDXC         |   702K|    13M|   602   (1)| 00:00:01 |  Q1,07 | PCWP |            |
|  45 |                    BUFFER SORT                  |                           |       |       |            |          |  Q1,12 | PCWC |            |
|  46 |                     PX RECEIVE                  |                           |  1496K|    61M|  5419   (1)| 00:00:01 |  Q1,12 | PCWP |            |
|  47 |                      PX SEND HASH               | :TQ10003                  |  1496K|    61M|  5419   (1)| 00:00:01 |        | S->P | HASH       |
|  48 |                       TABLE ACCESS FULL         | DSB_ACC_DBT               |  1496K|    61M|  5419   (1)| 00:00:01 |        |      |            |
|* 49 |                   INDEX RANGE SCAN              | DTURN_ACC_DBT_IDX5        |    92 |  3036 |     3   (0)| 00:00:01 |  Q1,12 | PCWP |            |
|* 50 |              INDEX UNIQUE SCAN                  | DCREDIT_C_DBT_IDX0        |     1 |     5 |     0   (0)| 00:00:01 |  Q1,14 | PCWP |            |
|  51 |             NESTED LOOPS                        |                           |    26 |  4472 |   166K  (2)| 00:00:22 |  Q1,14 | PCWP |            |
|  52 |              NESTED LOOPS                       |                           |    26 |  4342 |   166K  (2)| 00:00:22 |  Q1,14 | PCWP |            |
|  53 |               NESTED LOOPS                      |                           |    26 |  4082 |   166K  (2)| 00:00:22 |  Q1,14 | PCWP |            |
|* 54 |                HASH JOIN                        |                           |   208 | 28912 |   164K  (2)| 00:00:22 |  Q1,14 | PCWP |            |
|  55 |                 PX RECEIVE                      |                           |  3069 |   287K|   159K  (2)| 00:00:21 |  Q1,14 | PCWP |            |
|  56 |                  PX SEND HASH                   | :TQ10013                  |  3069 |   287K|   159K  (2)| 00:00:21 |  Q1,13 | P->P | HASH       |
|* 57 |                   HASH JOIN                     |                           |  3069 |   287K|   159K  (2)| 00:00:21 |  Q1,13 | PCWP |            |
|  58 |                    PX RECEIVE                   |                           |   123K|  7614K|  4864   (2)| 00:00:01 |  Q1,13 | PCWP |            |
|  59 |                     PX SEND HASH                | :TQ10011                  |   123K|  7614K|  4864   (2)| 00:00:01 |  Q1,11 | P->P | HASH       |
|* 60 |                      HASH JOIN                  |                           |   123K|  7614K|  4864   (2)| 00:00:01 |  Q1,11 | PCWP |            |
|  61 |                       PX RECEIVE                |                           | 66955 |  1961K|  2137   (1)| 00:00:01 |  Q1,11 | PCWP |            |
|  62 |                        PX SEND HASH             | :TQ10008                  | 66955 |  1961K|  2137   (1)| 00:00:01 |  Q1,08 | P->P | HASH       |
|  63 |                         PX BLOCK ITERATOR       |                           | 66955 |  1961K|  2137   (1)| 00:00:01 |  Q1,08 | PCWC |            |
|* 64 |                          INDEX FAST FULL SCAN   | DACC_CRD_DBT_IDX2         | 66955 |  1961K|  2137   (1)| 00:00:01 |  Q1,08 | PCWP |            |
|  65 |                       BUFFER SORT               |                           |       |       |            |          |  Q1,11 | PCWC |            |
|  66 |                        PX RECEIVE               |                           |  2024K|    63M|  2701   (1)| 00:00:01 |  Q1,11 | PCWP |            |
|  67 |                         PX SEND HASH            | :TQ10002                  |  2024K|    63M|  2701   (1)| 00:00:01 |        | S->P | HASH       |
|  68 |                          TABLE ACCESS FULL      | CB_SETTINTS_TURN_LAST_DAY |  2024K|    63M|  2701   (1)| 00:00:01 |        |      |            |
|  69 |                    BUFFER SORT                  |                           |       |       |            |          |  Q1,13 | PCWC |            |
|  70 |                     PX RECEIVE                  |                           |    97M|  3080M|   154K  (1)| 00:00:21 |  Q1,13 | PCWP |            |
|  71 |                      PX SEND HASH               | :TQ10004                  |    97M|  3080M|   154K  (1)| 00:00:21 |        | S->P | HASH       |
|* 72 |                       INDEX FAST FULL SCAN      | DTURN_ACC_DBT_IDX5        |    97M|  3080M|   154K  (1)| 00:00:21 |        |      |            |
|  73 |                 BUFFER SORT                     |                           |       |       |            |          |  Q1,14 | PCWC |            |
|  74 |                  PX RECEIVE                     |                           |  1496K|    61M|  5419   (1)| 00:00:01 |  Q1,14 | PCWP |            |
|  75 |                   PX SEND HASH                  | :TQ10006                  |  1496K|    61M|  5419   (1)| 00:00:01 |        | S->P | HASH       |
|  76 |                    TABLE ACCESS FULL            | DSB_ACC_DBT               |  1496K|    61M|  5419   (1)| 00:00:01 |        |      |            |
|  77 |                VIEW                             |                           |     1 |    18 |     7   (0)| 00:00:01 |  Q1,14 | PCWP |            |
|  78 |                 UNION ALL PUSHED PREDICATE      |                           |       |       |            |          |  Q1,14 | PCWP |            |
|* 79 |                  INDEX RANGE SCAN               | DACCBLNC_DBT_INX3         |     1 |    25 |     3   (0)| 00:00:01 |  Q1,14 | PCWP |            |
|  80 |                  NESTED LOOPS ANTI              |                           |     1 |    49 |     4   (0)| 00:00:01 |  Q1,14 | PCWP |            |
|* 81 |                   INDEX RANGE SCAN              | DACCBLNC$_DBT_INX1        |     1 |    29 |     3   (0)| 00:00:01 |  Q1,14 | PCWP |            |
|* 82 |                   INDEX UNIQUE SCAN             | DACCBLNC_DBT_IDXC         |     1 |    20 |     1   (0)| 00:00:01 |  Q1,14 | PCWP |            |
|  83 |               TABLE ACCESS BY INDEX ROWID       | DDUTY_CRD_DBT             |     1 |    10 |     1   (0)| 00:00:01 |  Q1,14 | PCWP |            |
|* 84 |                INDEX UNIQUE SCAN                | DDUTY_CRD_DBT_IDX0        |     1 |       |     0   (0)| 00:00:01 |  Q1,14 | PCWP |            |
|* 85 |              INDEX UNIQUE SCAN                  | DCREDIT_C_DBT_IDX0        |     1 |     5 |     0   (0)| 00:00:01 |  Q1,14 | PCWP |            |
|* 86 |       TABLE ACCESS BY INDEX ROWID               | DCREDIT_C_DBT             |     1 |     8 |     0   (0)| 00:00:01 |  Q1,15 | PCWP |            |
|* 87 |        INDEX UNIQUE SCAN                        | DCREDIT_C_DBT_IDX0        |     1 |       |     0   (0)| 00:00:01 |  Q1,15 | PCWP |            |
|  88 |      VIEW PUSHED PREDICATE                      |                           |     1 |       |    62   (0)| 00:00:01 |  Q1,15 | PCWP |            |
|* 89 |       FILTER                                    |                           |       |       |            |          |  Q1,15 | PCWP |            |
|  90 |        SORT AGGREGATE                           |                           |     1 |    91 |            |          |  Q1,15 | PCWP |            |
|  91 |         CONCATENATION                           |                           |       |       |            |          |  Q1,15 | PCWP |            |
|  92 |          NESTED LOOPS                           |                           |       |       |            |          |  Q1,15 | PCWP |            |
|  93 |           NESTED LOOPS                          |                           |     1 |    91 |     6   (0)| 00:00:01 |  Q1,15 | PCWP |            |
|* 94 |            TABLE ACCESS BY INDEX ROWID          | DCRD_OP_DBT               |     1 |    23 |     5   (0)| 00:00:01 |  Q1,15 | PCWP |            |
|* 95 |             INDEX RANGE SCAN                    | DCRD_OP_DBT_IDX_NU1       |     1 |       |     4   (0)| 00:00:01 |  Q1,15 | PCWP |            |
|* 96 |            INDEX UNIQUE SCAN                    | DTYPE_OP_DBT_IDX1         |     1 |       |     0   (0)| 00:00:01 |  Q1,15 | PCWP |            |
|* 97 |           TABLE ACCESS BY INDEX ROWID           | DTYPE_OP_DBT              |     1 |    68 |     1   (0)| 00:00:01 |  Q1,15 | PCWP |            |
|  98 |          NESTED LOOPS                           |                           |       |       |            |          |  Q1,15 | PCWP |            |
|  99 |           NESTED LOOPS                          |                           |     6 |   546 |    56   (0)| 00:00:01 |  Q1,15 | PCWP |            |
|*100 |            TABLE ACCESS FULL                    | DTYPE_OP_DBT              |     4 |   272 |    24   (0)| 00:00:01 |  Q1,15 | PCWP |            |
|*101 |            INDEX RANGE SCAN                     | DCRD_OP_DBT_IDXNU01       |     3 |       |     5   (0)| 00:00:01 |  Q1,15 | PCWP |            |
|*102 |           TABLE ACCESS BY INDEX ROWID           | DCRD_OP_DBT               |     1 |    23 |     8   (0)| 00:00:01 |  Q1,15 | PCWP |            |
| 103 |   NESTED LOOPS                                  |                           |       |       |            |          |        |      |            |
| 104 |    NESTED LOOPS                                 |                           |     1 |    60 |     7   (0)| 00:00:01 |        |      |            |
|*105 |     TABLE ACCESS BY INDEX ROWID                 | DLUFOTYPE_DBT             |     1 |    20 |     4   (0)| 00:00:01 |        |      |            |
|*106 |      INDEX RANGE SCAN                           | IDX$$_D2160002            |     1 |       |     3   (0)| 00:00:01 |        |      |            |
|*107 |     INDEX RANGE SCAN                            | DLUFVALUE_DBT_IDX0        |     1 |       |     2   (0)| 00:00:01 |        |      |            |
|*108 |    TABLE ACCESS BY INDEX ROWID                  | DLUFVALUE_DBT             |     1 |    40 |     3   (0)| 00:00:01 |        |      |            |
----------------------------------------------------------------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   1 - filter( NOT EXISTS (SELECT 0 FROM "RSUSER"."DLUFVALUE_DBT" "V","RSUSER"."DLUFOTYPE_DBT" "T" WHERE "T"."T_USFIELDID_REF"=30123 AND 
              "T"."T_OBJID_REF"=:B1 AND "T"."T_OBJECTID_REF"=1 AND "V"."T_USFOBJTYPEID_REF"="T"."T_USFOBJTYPEID" AND 
              "DWH_SERVICE_FUNCTIONS"."CLEAR_CTRL_CHAR"("V"."T_USFIELDVALUE")='А' AND "V"."T_ISOPERATING"='X'))
  13 - access("TRN_LD"."T_ACCOUNTNUMBER_REF"="DACC"."T_ACCOUNTNUMBER_REF" AND "TRN_LD"."T_CURCODE"="DACC"."T_CURCODE" AND 
              "TRN_LD"."T_OPERDPRT"="DSB"."T_OPERDPRT" AND "TRN_LD"."T_TURNOVERDATE"="TRN"."T_TURNOVERDATE")
  20 - access("DACC"."T_ACCOUNTNUMBER_REF"="TRN"."T_ACCOUNTNUMBER_REF")
  24 - filter("DACC"."T_OBJECTID"=1)
  26 - access("DSB"."T_ODBACCOUNT"="BAL"."T_ACCOUNT")
  35 - filter(SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='1424' OR SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='1740' OR 
              SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='1741' OR SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='1428' OR 
              SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='7130' OR SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='6625')
  36 - access("T3"."T_ACCOUNT"="T4"."T_ACCOUNT" AND "T3"."T_CHAPTER"="T4"."T_CHAPTER")
  40 - filter(SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='1424' OR SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='1740' OR 
              SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='1741' OR SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='1428' OR 
              SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='7130' OR SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='6625')
  49 - access("TRN"."T_ACCOUNTNUMBER_REF"="DSB"."T_ACCOUNTNUMBER")
       filter("TRN"."T_TURNOVERREST"<>0)
  50 - access("CRD"."T_CREDITNUMBER"="DACC"."T_OBJECTNUMBER")
  54 - access("TRN"."T_ACCOUNTNUMBER_REF"="DSB"."T_ACCOUNTNUMBER" AND "TRN_LD"."T_OPERDPRT"="DSB"."T_OPERDPRT")
  57 - access("DACC"."T_ACCOUNTNUMBER_REF"="TRN"."T_ACCOUNTNUMBER_REF" AND "TRN_LD"."T_TURNOVERDATE"="TRN"."T_TURNOVERDATE")
  60 - access("TRN_LD"."T_ACCOUNTNUMBER_REF"="DACC"."T_ACCOUNTNUMBER_REF" AND "TRN_LD"."T_CURCODE"="DACC"."T_CURCODE")
  64 - filter("DACC"."T_OBJECTID"=6)
  72 - filter("TRN"."T_TURNOVERREST"<>0)
  79 - access("T3"."T_ACCOUNT"="DSB"."T_ODBACCOUNT")
       filter(SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='1411' OR SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='1417')
  81 - access("T4"."T_ACCOUNT"="DSB"."T_ODBACCOUNT")
       filter(SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='1411' OR SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='1417')
  82 - access("T3"."T_CHAPTER"="T4"."T_CHAPTER" AND "T3"."T_ACCOUNT"="DSB"."T_ODBACCOUNT")
       filter("T3"."T_ACCOUNT"="T4"."T_ACCOUNT")
  84 - access("DTY"."T_DUTYID"="DACC"."T_OBJECTNUMBER")
  85 - access("CRD"."T_CREDITNUMBER"="DTY"."T_CREDITNUMBER_REF")
  86 - filter("CR"."T_CRD_KIND"=1)
  87 - access("VW_COL_1"="CR"."T_CREDITNUMBER")
  89 - filter(COUNT(*)>0)
  94 - filter("DOD"."T_ISDELETED"=0 AND "DOD"."T_STAGEID_REF"=99)
  95 - access("DOD"."T_CREDITNUMBER_REF"="CR"."T_CREDITNUMBER" AND "DOD"."T_CREDOPERDATE"=TO_DATE(' 2015-01-28 00:00:00', 'syyyy-mm-dd 
              hh24:mi:ss'))
  96 - access("DOD"."T_OPERTYPENUMBER_REF"="DT"."T_TYPEOPERNUMBER")
  97 - filter("DT"."T_TYPEOPERNAME"='Закрытие договора')
 100 - filter("DT"."T_TYPEOPERNAME"='Открытие договора')
 101 - access("DOD"."T_CREDITNUMBER_REF"="CR"."T_CREDITNUMBER" AND "DOD"."T_ISDELETED"=0 AND "DOD"."T_OPERTYPENUMBER_REF"="DT"."T_TYPEOPERNUMBER")
       filter("DOD"."T_ISDELETED"=0 AND "DOD"."T_OPERTYPENUMBER_REF"="DT"."T_TYPEOPERNUMBER")
 102 - filter("DOD"."T_CREDOPERDATE"<=TO_DATE(' 2015-01-28 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "DOD"."T_STAGEID_REF"=99 AND 
              (LNNVL("DT"."T_TYPEOPERNAME"='Закрытие договора') OR LNNVL("DOD"."T_CREDOPERDATE"=TO_DATE(' 2015-01-28 00:00:00', 'syyyy-mm-dd hh24:mi:ss')) OR 
              LNNVL(SYS_OP_DESCEND("DOD"."T_CREDOPERDATE")<=HEXTORAW('878CFEE3FEF8FEFAFF') ) OR 
              LNNVL(SYS_OP_DESCEND("DOD"."T_CREDOPERDATE")>=HEXTORAW('878CFEE3FEF8FEFAFF') )))
 105 - filter("T"."T_OBJECTID_REF"=1)
 106 - access("T"."T_OBJID_REF"=:B1 AND "T"."T_USFIELDID_REF"=30123)
 107 - access("V"."T_USFOBJTYPEID_REF"="T"."T_USFOBJTYPEID")
 108 - filter("DWH_SERVICE_FUNCTIONS"."CLEAR_CTRL_CHAR"("V"."T_USFIELDVALUE")='А' AND "V"."T_ISOPERATING"='X')



Позже появилась необходимость его доработки. В итоге в код запроса был добавлен блок:

+
and not exists
 (select crd.t_creditnumber
          from rsuser.dcredit_c_dbt crd,
               rsuser.dacc_crd_dbt  dacc,
               rsuser.dsb_acc_dbt   dsb,
               
               (select replace(t3.t_balance2, chr(1)) t_balance2,
                       t3.t_account
                  from rsuser.daccblnc_dbt t3
                union all
                select replace(t4.t_balance2, chr(1)) t_balance2,
                       t4.t_account
                  from rsuser.daccblnc$_dbt t4
                 where not exists (select 1
                          from rsuser.daccblnc_dbt t3
                         where t3.t_account = t4.t_account
                           and t3.t_chapter = t4.t_chapter)) bal
         where dacc.t_objectid = 1
           and substr(bal.t_balance2, 1, 4) in ('6677', '7535')
           and crd.t_creditnumber = dacc.t_objectnumber
           and dacc.t_accountnumber_ref = dsb.t_accountnumber
           and dsb.t_odbaccount = bal.t_account
           and crd.t_creditnumber = cr.t_creditnumber)




После чего он стал работать недопустимо дольше - не вернул все записи и за 2 с лишним часа. Вот план этого запроса:

+
Plan hash value: 3522925437
 
---------------------------------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                                      | Name                      | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
---------------------------------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                               |                           |     1 |    23 | 16834   (2)| 00:00:03 |        |      |            |
|*  1 |  FILTER                                        |                           |       |       |            |          |        |      |            |
|   2 |   PX COORDINATOR FORCED SERIAL                 |                           |       |       |            |          |        |      |            |
|   3 |    PX SEND QC (RANDOM)                         | :TQ10011                  |     5 |   115 |  9611   (1)| 00:00:02 |  Q1,11 | P->S | QC (RAND)  |
|   4 |     BUFFER SORT                                |                           |     1 |    23 |            |          |  Q1,11 | PCWP |            |
|   5 |      NESTED LOOPS                              |                           |     5 |   115 |  9611   (1)| 00:00:02 |  Q1,11 | PCWP |            |
|   6 |       NESTED LOOPS ANTI                        |                           |     5 |   115 |  9600   (1)| 00:00:02 |  Q1,11 | PCWP |            |
|*  7 |        HASH JOIN ANTI                          |                           |   517 | 10857 |  9475   (1)| 00:00:02 |  Q1,11 | PCWP |            |
|   8 |         PX RECEIVE                             |                           | 51724 |   404K|   249   (1)| 00:00:01 |  Q1,11 | PCWP |            |
|   9 |          PX SEND HASH                          | :TQ10009                  | 51724 |   404K|   249   (1)| 00:00:01 |  Q1,09 | P->P | HASH       |
|* 10 |           VIEW                                 | index$_join$_001          | 51724 |   404K|   249   (1)| 00:00:01 |  Q1,09 | PCWP |            |
|* 11 |            HASH JOIN BUFFERED                  |                           |       |       |            |          |  Q1,09 | PCWP |            |
|  12 |             BUFFER SORT                        |                           |       |       |            |          |  Q1,09 | PCWC |            |
|  13 |              PX RECEIVE                        |                           | 51724 |   404K|   104   (1)| 00:00:01 |  Q1,09 | PCWP |            |
|  14 |               PX SEND HASH                     | :TQ10003                  | 51724 |   404K|   104   (1)| 00:00:01 |        | S->P | HASH       |
|* 15 |                INDEX RANGE SCAN                | DCREDIT_C_DBT_INX1        | 51724 |   404K|   104   (1)| 00:00:01 |        |      |            |
|  16 |             PX RECEIVE                         |                           | 51724 |   404K|   181   (1)| 00:00:01 |  Q1,09 | PCWP |            |
|  17 |              PX SEND HASH                      | :TQ10006                  | 51724 |   404K|   181   (1)| 00:00:01 |  Q1,06 | P->P | HASH       |
|  18 |               PX BLOCK ITERATOR                |                           | 51724 |   404K|   181   (1)| 00:00:01 |  Q1,06 | PCWC |            |
|  19 |                INDEX FAST FULL SCAN            | DCREDIT_C_DBT_IDX0        | 51724 |   404K|   181   (1)| 00:00:01 |  Q1,06 | PCWP |            |
|  20 |         PX RECEIVE                             |                           | 99474 |  1262K|  9226   (1)| 00:00:02 |  Q1,11 | PCWP |            |
|  21 |          PX SEND HASH                          | :TQ10010                  | 99474 |  1262K|  9226   (1)| 00:00:02 |  Q1,10 | P->P | HASH       |
|  22 |           BUFFER SORT                          |                           |     1 |    23 |            |          |  Q1,10 | PCWP |            |
|  23 |            VIEW                                | VW_SQ_2                   | 99474 |  1262K|  9226   (1)| 00:00:02 |  Q1,10 | PCWP |            |
|  24 |             NESTED LOOPS                       |                           | 99474 |  8742K|  9226   (1)| 00:00:02 |  Q1,10 | PCWP |            |
|* 25 |              HASH JOIN                         |                           |   186K|    15M|  9225   (1)| 00:00:02 |  Q1,10 | PCWP |            |
|  26 |               JOIN FILTER CREATE               | :BF0000                   |   186K|    10M|  7087   (2)| 00:00:01 |  Q1,10 | PCWP |            |
|  27 |                PX RECEIVE                      |                           |   186K|    10M|  7087   (2)| 00:00:01 |  Q1,10 | PCWP |            |
|  28 |                 PX SEND HASH                   | :TQ10007                  |   186K|    10M|  7087   (2)| 00:00:01 |  Q1,07 | P->P | HASH       |
|* 29 |                  HASH JOIN                     |                           |   186K|    10M|  7087   (2)| 00:00:01 |  Q1,07 | PCWP |            |
|  30 |                   PX RECEIVE                   |                           | 14000 |   246K|  1701   (4)| 00:00:01 |  Q1,07 | PCWP |            |
|  31 |                    PX SEND HASH                | :TQ10005                  | 14000 |   246K|  1701   (4)| 00:00:01 |  Q1,05 | P->P | HASH       |
|  32 |                     BUFFER SORT                |                           |     1 |    23 |            |          |  Q1,05 | PCWP |            |
|  33 |                      VIEW                      |                           | 14000 |   246K|  1701   (4)| 00:00:01 |  Q1,05 | PCWP |            |
|  34 |                       UNION-ALL                |                           |       |       |            |          |  Q1,05 | PCWP |            |
|  35 |                        BUFFER SORT             |                           |       |       |            |          |  Q1,05 | PCWC |            |
|  36 |                         PX RECEIVE             |                           |       |       |            |          |  Q1,05 | PCWP |            |
|  37 |                          PX SEND ROUND-ROBIN   | :TQ10000                  |       |       |            |          |        | S->P | RND-ROBIN  |
|* 38 |                           INDEX FAST FULL SCAN | DACCBLNC_DBT_INX3         | 13971 |   341K|   884   (4)| 00:00:01 |        |      |            |
|* 39 |                        HASH JOIN ANTI          |                           |    29 |  1421 |   817   (4)| 00:00:01 |  Q1,05 | PCWP |            |
|  40 |                         BUFFER SORT            |                           |       |       |            |          |  Q1,05 | PCWC |            |
|  41 |                          PX RECEIVE            |                           |  2936 | 85144 |   196   (4)| 00:00:01 |  Q1,05 | PCWP |            |
|  42 |                           PX SEND HASH         | :TQ10001                  |  2936 | 85144 |   196   (4)| 00:00:01 |        | S->P | HASH       |
|* 43 |                            INDEX FAST FULL SCAN| DACCBLNC$_DBT_INX1        |  2936 | 85144 |   196   (4)| 00:00:01 |        |      |            |
|  44 |                         PX RECEIVE             |                           |   702K|    13M|   602   (1)| 00:00:01 |  Q1,05 | PCWP |            |
|  45 |                          PX SEND HASH          | :TQ10004                  |   702K|    13M|   602   (1)| 00:00:01 |  Q1,04 | P->P | HASH       |
|  46 |                           PX BLOCK ITERATOR    |                           |   702K|    13M|   602   (1)| 00:00:01 |  Q1,04 | PCWC |            |
|  47 |                            INDEX FAST FULL SCAN| DACCBLNC_DBT_IDXC         |   702K|    13M|   602   (1)| 00:00:01 |  Q1,04 | PCWP |            |
|  48 |                   BUFFER SORT                  |                           |       |       |            |          |  Q1,07 | PCWC |            |
|  49 |                    PX RECEIVE                  |                           |  1496K|    57M|  5405   (1)| 00:00:01 |  Q1,07 | PCWP |            |
|  50 |                     PX SEND HASH               | :TQ10002                  |  1496K|    57M|  5405   (1)| 00:00:01 |        | S->P | HASH       |
|  51 |                      TABLE ACCESS FULL         | DSB_ACC_DBT               |  1496K|    57M|  5405   (1)| 00:00:01 |        |      |            |
|  52 |               PX RECEIVE                       |                           |  1235K|    31M|  2137   (1)| 00:00:01 |  Q1,10 | PCWP |            |
|  53 |                PX SEND HASH                    | :TQ10008                  |  1235K|    31M|  2137   (1)| 00:00:01 |  Q1,08 | P->P | HASH       |
|  54 |                 JOIN FILTER USE                | :BF0000                   |  1235K|    31M|  2137   (1)| 00:00:01 |  Q1,08 | PCWP |            |
|  55 |                  PX BLOCK ITERATOR             |                           |  1235K|    31M|  2137   (1)| 00:00:01 |  Q1,08 | PCWC |            |
|* 56 |                   INDEX FAST FULL SCAN         | DACC_CRD_DBT_IDX2         |  1235K|    31M|  2137   (1)| 00:00:01 |  Q1,08 | PCWP |            |
|* 57 |              INDEX UNIQUE SCAN                 | DCREDIT_C_DBT_IDX0        |     1 |     5 |     0   (0)| 00:00:01 |  Q1,10 | PCWP |            |
|  58 |        VIEW PUSHED PREDICATE                   | VW_SQ_1                   |     1 |     2 |     7   (0)| 00:00:01 |  Q1,11 | PCWP |            |
|  59 |         NESTED LOOPS                           |                           |       |       |            |          |  Q1,11 | PCWP |            |
|  60 |          NESTED LOOPS                          |                           |     1 |    60 |     7   (0)| 00:00:01 |  Q1,11 | PCWP |            |
|* 61 |           TABLE ACCESS BY INDEX ROWID          | DLUFOTYPE_DBT             |     1 |    20 |     4   (0)| 00:00:01 |  Q1,11 | PCWP |            |
|* 62 |            INDEX RANGE SCAN                    | IDX$$_D2160002            |     1 |       |     3   (0)| 00:00:01 |  Q1,11 | PCWP |            |
|* 63 |           INDEX RANGE SCAN                     | DLUFVALUE_DBT_IDX0        |     1 |       |     2   (0)| 00:00:01 |  Q1,11 | PCWP |            |
|* 64 |          TABLE ACCESS BY INDEX ROWID           | DLUFVALUE_DBT             |     1 |    40 |     3   (0)| 00:00:01 |  Q1,11 | PCWP |            |
|  65 |       VIEW PUSHED PREDICATE                    |                           |     1 |       |    62   (0)| 00:00:01 |  Q1,11 | PCWP |            |
|* 66 |        FILTER                                  |                           |       |       |            |          |  Q1,11 | PCWP |            |
|  67 |         SORT AGGREGATE                         |                           |     1 |    91 |            |          |  Q1,11 | PCWP |            |
|  68 |          CONCATENATION                         |                           |       |       |            |          |  Q1,11 | PCWP |            |
|  69 |           NESTED LOOPS                         |                           |       |       |            |          |  Q1,11 | PCWP |            |
|  70 |            NESTED LOOPS                        |                           |     1 |    91 |     6   (0)| 00:00:01 |  Q1,11 | PCWP |            |
|* 71 |             TABLE ACCESS BY INDEX ROWID        | DCRD_OP_DBT               |     1 |    23 |     5   (0)| 00:00:01 |  Q1,11 | PCWP |            |
|* 72 |              INDEX RANGE SCAN                  | DCRD_OP_DBT_IDX_NU1       |     1 |       |     4   (0)| 00:00:01 |  Q1,11 | PCWP |            |
|* 73 |             INDEX UNIQUE SCAN                  | DTYPE_OP_DBT_IDX1         |     1 |       |     0   (0)| 00:00:01 |  Q1,11 | PCWP |            |
|* 74 |            TABLE ACCESS BY INDEX ROWID         | DTYPE_OP_DBT              |     1 |    68 |     1   (0)| 00:00:01 |  Q1,11 | PCWP |            |
|  75 |           NESTED LOOPS                         |                           |       |       |            |          |  Q1,11 | PCWP |            |
|  76 |            NESTED LOOPS                        |                           |     6 |   546 |    56   (0)| 00:00:01 |  Q1,11 | PCWP |            |
|* 77 |             TABLE ACCESS FULL                  | DTYPE_OP_DBT              |     4 |   272 |    24   (0)| 00:00:01 |  Q1,11 | PCWP |            |
|* 78 |             INDEX RANGE SCAN                   | DCRD_OP_DBT_IDXNU01       |     3 |       |     5   (0)| 00:00:01 |  Q1,11 | PCWP |            |
|* 79 |            TABLE ACCESS BY INDEX ROWID         | DCRD_OP_DBT               |     1 |    23 |     8   (0)| 00:00:01 |  Q1,11 | PCWP |            |
|  80 |   UNION-ALL                                    |                           |       |       |            |          |        |      |            |
|  81 |    NESTED LOOPS                                |                           |     1 |   248 |  2762   (2)| 00:00:01 |        |      |            |
|  82 |     NESTED LOOPS                               |                           |     1 |   144 |  2755   (2)| 00:00:01 |        |      |            |
|* 83 |      HASH JOIN                                 |                           |     1 |   101 |  2752   (2)| 00:00:01 |        |      |            |
|  84 |       NESTED LOOPS                             |                           |  1004 | 68272 |    40   (0)| 00:00:01 |        |      |            |
|  85 |        NESTED LOOPS                            |                           |    11 |   385 |     7   (0)| 00:00:01 |        |      |            |
|* 86 |         INDEX UNIQUE SCAN                      | DCREDIT_C_DBT_IDX0        |     1 |     5 |     1   (0)| 00:00:01 |        |      |            |
|  87 |         TABLE ACCESS BY INDEX ROWID            | DACC_CRD_DBT              |    11 |   330 |     6   (0)| 00:00:01 |        |      |            |
|* 88 |          INDEX RANGE SCAN                      | IDX$$_D2160008            |    11 |       |     2   (0)| 00:00:01 |        |      |            |
|* 89 |        INDEX RANGE SCAN                        | DTURN_ACC_DBT_IDX5        |    95 |  3135 |     3   (0)| 00:00:01 |        |      |            |
|  90 |       TABLE ACCESS FULL                        | CB_SETTINTS_TURN_LAST_DAY |  2024K|    63M|  2701   (1)| 00:00:01 |        |      |            |
|* 91 |      TABLE ACCESS BY INDEX ROWID               | DSB_ACC_DBT               |     1 |    43 |     3   (0)| 00:00:01 |        |      |            |
|* 92 |       INDEX RANGE SCAN                         | DSB_ACC_DBT_INX4          |     1 |       |     2   (0)| 00:00:01 |        |      |            |
|  93 |     VIEW                                       |                           |     1 |   104 |     7   (0)| 00:00:01 |        |      |            |
|  94 |      UNION ALL PUSHED PREDICATE                |                           |       |       |            |          |        |      |            |
|* 95 |       INDEX RANGE SCAN                         | DACCBLNC_DBT_INX3         |     1 |    25 |     3   (0)| 00:00:01 |        |      |            |
|  96 |       NESTED LOOPS ANTI                        |                           |     1 |    49 |     4   (0)| 00:00:01 |        |      |            |
|* 97 |        INDEX RANGE SCAN                        | DACCBLNC$_DBT_INX1        |     1 |    29 |     3   (0)| 00:00:01 |        |      |            |
|* 98 |        INDEX UNIQUE SCAN                       | DACCBLNC_DBT_IDXC         |     1 |    20 |     1   (0)| 00:00:01 |        |      |            |
|  99 |    NESTED LOOPS                                |                           |     1 |   258 |   873   (0)| 00:00:01 |        |      |            |
| 100 |     NESTED LOOPS                               |                           |     1 |   154 |   866   (0)| 00:00:01 |        |      |            |
| 101 |      NESTED LOOPS                              |                           |   171 | 20691 |   524   (0)| 00:00:01 |        |      |            |
| 102 |       NESTED LOOPS                             |                           |   171 | 13338 |    11   (0)| 00:00:01 |        |      |            |
| 103 |        NESTED LOOPS                            |                           |     2 |    90 |     5   (0)| 00:00:01 |        |      |            |
| 104 |         NESTED LOOPS                           |                           |     1 |    15 |     2   (0)| 00:00:01 |        |      |            |
|*105 |          INDEX UNIQUE SCAN                     | DCREDIT_C_DBT_IDX0        |     1 |     5 |     1   (0)| 00:00:01 |        |      |            |
|*106 |          INDEX RANGE SCAN                      | IDX$$_D2160005            |     1 |    10 |     1   (0)| 00:00:01 |        |      |            |
| 107 |         TABLE ACCESS BY INDEX ROWID            | DACC_CRD_DBT              |     1 |    30 |     3   (0)| 00:00:01 |        |      |            |
|*108 |          INDEX RANGE SCAN                      | DACC_CRD_DBT_IDX1         |     1 |       |     2   (0)| 00:00:01 |        |      |            |
|*109 |        INDEX RANGE SCAN                        | DTURN_ACC_DBT_IDX5        |    95 |  3135 |     3   (0)| 00:00:01 |        |      |            |
| 110 |       TABLE ACCESS BY INDEX ROWID              | DSB_ACC_DBT               |     1 |    43 |     3   (0)| 00:00:01 |        |      |            |
|*111 |        INDEX RANGE SCAN                        | DSB_ACC_DBT_INX4          |     1 |       |     2   (0)| 00:00:01 |        |      |            |
|*112 |      INDEX RANGE SCAN                          | CB_SETTINTS_TURN_LD_INX1  |     1 |    33 |     2   (0)| 00:00:01 |        |      |            |
| 113 |     VIEW                                       |                           |     1 |   104 |     7   (0)| 00:00:01 |        |      |            |
| 114 |      UNION ALL PUSHED PREDICATE                |                           |       |       |            |          |        |      |            |
|*115 |       INDEX RANGE SCAN                         | DACCBLNC_DBT_INX3         |     1 |    25 |     3   (0)| 00:00:01 |        |      |            |
| 116 |       NESTED LOOPS ANTI                        |                           |     1 |    49 |     4   (0)| 00:00:01 |        |      |            |
|*117 |        INDEX RANGE SCAN                        | DACCBLNC$_DBT_INX1        |     1 |    29 |     3   (0)| 00:00:01 |        |      |            |
|*118 |        INDEX UNIQUE SCAN                       | DACCBLNC_DBT_IDXC         |     1 |    20 |     1   (0)| 00:00:01 |        |      |            |
---------------------------------------------------------------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   1 - filter( EXISTS ( (SELECT 1 FROM "CB_SETTINTS_TURN_LAST_DAY" "TRN_LD", ( (SELECT REPLACE("T3"."T_BALANCE2",'') 
              "T_BALANCE2","T3"."T_ACCOUNT" "T_ACCOUNT" FROM "RSUSER"."DACCBLNC_DBT" "T3" WHERE "T3"."T_ACCOUNT"="DSB"."T_ODBACCOUNT" AND 
              (SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='1424' OR SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='1740' OR 
              SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='1741' OR SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='1428' OR 
              SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='7130' OR SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='6625')) UNION ALL  (SELECT /*+ <not feasible>)
   7 - access("ITEM_2"="CR"."T_CREDITNUMBER")
  10 - filter("CR"."T_CRD_KIND"=1)
  11 - access(ROWID=ROWID)
  15 - access("CR"."T_CRD_KIND"=1)
  25 - access("DACC"."T_ACCOUNTNUMBER_REF"="DSB"."T_ACCOUNTNUMBER")
  29 - access("DSB"."T_ODBACCOUNT"="BAL"."T_ACCOUNT")
  38 - filter(SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='6677' OR SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='7535')
  39 - access("T3"."T_ACCOUNT"="T4"."T_ACCOUNT" AND "T3"."T_CHAPTER"="T4"."T_CHAPTER")
  43 - filter(SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='6677' OR SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='7535')
  56 - filter("DACC"."T_OBJECTID"=1)
  57 - access("CRD"."T_CREDITNUMBER"="DACC"."T_OBJECTNUMBER")
  61 - filter("T"."T_OBJECTID_REF"=1)
  62 - access("T"."T_OBJID_REF"="CR"."T_CREDITNUMBER" AND "T"."T_USFIELDID_REF"=30123)
  63 - access("V"."T_USFOBJTYPEID_REF"="T"."T_USFOBJTYPEID")
  64 - filter("DWH_SERVICE_FUNCTIONS"."CLEAR_CTRL_CHAR"("V"."T_USFIELDVALUE")='А' AND "V"."T_ISOPERATING"='X')
  66 - filter(COUNT(*)>0)
  71 - filter("DOD"."T_ISDELETED"=0 AND "DOD"."T_STAGEID_REF"=99)
  72 - access("DOD"."T_CREDITNUMBER_REF"="CR"."T_CREDITNUMBER" AND "DOD"."T_CREDOPERDATE"=TO_DATE(' 2015-01-28 00:00:00', 'syyyy-mm-dd 
              hh24:mi:ss'))
  73 - access("DOD"."T_OPERTYPENUMBER_REF"="DT"."T_TYPEOPERNUMBER")
  74 - filter("DT"."T_TYPEOPERNAME"='Закрытие договора')
  77 - filter("DT"."T_TYPEOPERNAME"='Открытие договора')
  78 - access("DOD"."T_CREDITNUMBER_REF"="CR"."T_CREDITNUMBER" AND "DOD"."T_ISDELETED"=0 AND 
              "DOD"."T_OPERTYPENUMBER_REF"="DT"."T_TYPEOPERNUMBER")
       filter("DOD"."T_ISDELETED"=0 AND "DOD"."T_OPERTYPENUMBER_REF"="DT"."T_TYPEOPERNUMBER")
  79 - filter("DOD"."T_CREDOPERDATE"<=TO_DATE(' 2015-01-28 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "DOD"."T_STAGEID_REF"=99 AND 
              (LNNVL("DT"."T_TYPEOPERNAME"='Закрытие договора') OR LNNVL("DOD"."T_CREDOPERDATE"=TO_DATE(' 2015-01-28 00:00:00', 'syyyy-mm-dd hh24:mi:ss')) OR 
              LNNVL(SYS_OP_DESCEND("DOD"."T_CREDOPERDATE")<=HEXTORAW('878CFEE3FEF8FEFAFF') ) OR 
              LNNVL(SYS_OP_DESCEND("DOD"."T_CREDOPERDATE")>=HEXTORAW('878CFEE3FEF8FEFAFF') )))
  83 - access("TRN_LD"."T_ACCOUNTNUMBER_REF"="DACC"."T_ACCOUNTNUMBER_REF" AND "TRN_LD"."T_CURCODE"="DACC"."T_CURCODE" AND 
              "TRN_LD"."T_TURNOVERDATE"="TRN"."T_TURNOVERDATE")
  86 - access("CRD"."T_CREDITNUMBER"=:B1)
  88 - access("DACC"."T_OBJECTID"=1 AND "DACC"."T_OBJECTNUMBER"=:B1)
  89 - access("DACC"."T_ACCOUNTNUMBER_REF"="TRN"."T_ACCOUNTNUMBER_REF")
       filter("TRN"."T_TURNOVERREST"<>0)
  91 - filter("TRN_LD"."T_OPERDPRT"="DSB"."T_OPERDPRT")
  92 - access("TRN"."T_ACCOUNTNUMBER_REF"="DSB"."T_ACCOUNTNUMBER")
  95 - access("T3"."T_ACCOUNT"="DSB"."T_ODBACCOUNT")
       filter(SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='1424' OR SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='1740' OR 
              SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='1741' OR SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='1428' OR 
              SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='7130' OR SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='6625')
  97 - access("T4"."T_ACCOUNT"="DSB"."T_ODBACCOUNT")
       filter(SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='1424' OR SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='1740' OR 
              SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='1741' OR SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='1428' OR 
              SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='7130' OR SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='6625')
  98 - access("T3"."T_CHAPTER"="T4"."T_CHAPTER" AND "T3"."T_ACCOUNT"="DSB"."T_ODBACCOUNT")
       filter("T3"."T_ACCOUNT"="T4"."T_ACCOUNT")
 105 - access("CRD"."T_CREDITNUMBER"=:B1)
 106 - access("DTY"."T_CREDITNUMBER_REF"=:B1)
 108 - access("DACC"."T_OBJECTID"=6 AND "DTY"."T_DUTYID"="DACC"."T_OBJECTNUMBER")
 109 - access("DACC"."T_ACCOUNTNUMBER_REF"="TRN"."T_ACCOUNTNUMBER_REF")
       filter("TRN"."T_TURNOVERREST"<>0)
 111 - access("TRN"."T_ACCOUNTNUMBER_REF"="DSB"."T_ACCOUNTNUMBER")
 112 - access("TRN_LD"."T_TURNOVERDATE"="TRN"."T_TURNOVERDATE" AND "TRN_LD"."T_OPERDPRT"="DSB"."T_OPERDPRT" AND 
              "TRN_LD"."T_CURCODE"="DACC"."T_CURCODE" AND "TRN_LD"."T_ACCOUNTNUMBER_REF"="DACC"."T_ACCOUNTNUMBER_REF")
 115 - access("T3"."T_ACCOUNT"="DSB"."T_ODBACCOUNT")
       filter(SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='1411' OR SUBSTR(REPLACE("T3"."T_BALANCE2",''),1,4)='1417')
 117 - access("T4"."T_ACCOUNT"="DSB"."T_ODBACCOUNT")
       filter(SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='1411' OR SUBSTR(REPLACE("T4"."T_BALANCE2",''),1,4)='1417')
 118 - access("T3"."T_CHAPTER"="T4"."T_CHAPTER" AND "T3"."T_ACCOUNT"="DSB"."T_ODBACCOUNT")
       filter("T3"."T_ACCOUNT"="T4"."T_ACCOUNT")


Прошу наставить на верный путь - что делать, куда смотреть?
Спасибо
Ответ: Be or not to be..., ничего серьезного, просто вспомнилось )
Вопрос: Импорт из Excel

Добрый день! Подскажите как сделать импорт из Excel в Access с кнопки. Перерыл интернет так и не нашел. я знаю есть встроенная функция в Access Импорта, мне надо чтоб она открывалась с кнопки, так как пользователям надо чтоб все было на форме. как прописать это открытие?)

И еще вопрос когда файл екселевский загрузиться. у меня в базе идет сплошная нумерация. и с ней работает несколько пользователей. получается она меняется. как мне потом пронумеровать данные загруженные из ексель или при загрузке они автоматом нумеруются? Заранее всем спасибо за помощь)

Добавлено через 1 час 16 минут
Нашел как импортировать, чем макросы можно открыть это окошко. Только вопрос о присвоении порядковых номеров остался.

и еще такой вопрос. никак не получается добавить данные в базу через форму с помощью запроса скл. решил тоже сделать через добавление макрсоом. НО. у меня при занесении данных идет проверка на пустые поля. а кактеперь подцепить эту процедуру к макросу не пойму. чтоб сначало проверяла а потом добавляла?? Подскажите плиз.

и еще при добавлении ново записи у меня должно пояляться на форме номер записи дата и отдел. а уменя они появляются только когда запись добавлена. как еще это реализовать? тогда получиться как update такого вроде в макроах нету(
Ответ:
Visual Basic
1
2
DoCmd.RunSQL "INSERT INTO [Temp_нч]" & _
"SELECT * FROM [Excel 8.0;DATABASE=D:\Общая папка\_Импорт\НчМСС.xlsx].[ОКС$]"
Происвети импорт в таблицу Temp_нч из файла D:\Общая папка\_Импорт\НчМСС.xlsx] где ОКС название листа.
Вопрос: Программно импортировать таблицу Excel с указанием типов полей

Добрый день.
Допустим, есть таблица Excel, в которой несколько полей имеют довольно таки странные, заданные пользователем, форматы. Например, есть столбец "Размер", в котором хранятся сугубо ЧИСЛА, но с добавлением БУКВЫ, при этом буква добавляется через ФОРМАТ ЯЧЕЙКИ, т.е. в формате данной ячейки задано что-то вида 0"C", и если в ячейке хранится например число 12, то оно отображается как 12С. При этом в этом же столбце используются и куча других форматов типа 0"B", 0"D" и так далее. То есть в данном поле хранятся цифры, например: 12, 25, 14, но ОТОБРАЖАЮТСЯ они в виде 12С, 25D, 14C и так далее. Я без понятия, зачем оно так, но это - данность.

Так вот, существует задача "забрать" эти данные любым доступным способом в Access, чтобы эти буквы сохранились.

1. Делаю стандартно через Внешние данные, при этом хочу сделать присоединенную таблицу. При этом в мастере оно НЕ СПРАШИВАЕТ типы полей, делает вывод о содержимом по первым нескольким записям, и в итоге в присоединенной таблице в столбце Размер мы имеем числа: 12С, #Число!, 14C и т.д. При этом формат данного столбца Access устанавливает автоматически равным 0"C" (по первой ячейке), и соответственно все числа, которые не попадают в данный формат - вылетают как #Число! То есть такой вариант меня не устраивает.

2. Делаю через Внешние данные, но делаю импорт, а не присоединенную таблицу. В таком случае оно дает выставить для данного поля формат Текстовый - и все нужные буковки сохраняются. Ура-ура. НО

Возникает задача - как бы сделать такой вот импорт, с указанием типов полей, ПРОГРАММНО?..
DoCmd.TransferSpreadsheet - в нем я не нахожу, куда вписать, чтобы именно полю Размер задать текстовый формат...
Может, нужно воспользоваться чем-то другим?..
Заранее большое спасибо за подсказки)
Ответ: Если я правильно понимаю, то в исходном запросе должна быть не таблица, а сохраненный запрос, уже учитывающий все необходимые ограничения. И имя этого запроса передается в функцию. И вот в этом сохраненном запросе и надо задавать все требуемые условия:
Код SQL
1
FROM Сохраненный_Запрос_С_Условиями
И тогда не потребуются усилия, чтобы внедряться в функцию и что-то там менять. Сам исходный набор данных, построенный на сохраненном запросе, уже учтет все ограничения