|
VBA Excel ADO. Нумерация строк в SQL запросе.
|
|||
---|---|---|---|
#18+
Подлкючаюсь к XLS файлу с помощью ADO как описано в статье - http://support.microsoft.com/kb/257819. Подключение, выборка данных - ОК. Вопрос: как указать номер строки в SQL запросе. "SELECT field1, field2 FROM [Sheet1$]" Гуглил - нашел функцию для SQL Server 2005 - row_number(). Для Excel данная функция не работает ("SELECT row_number(), field1, field2 FROM [Sheet1$]") Эсть ли аналогичная функция для Excel? Где можно почитать полную документация по SQL запросам для Excel? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2009, 20:20 |
|
VBA Excel ADO. Нумерация строк в SQL запросе.
|
|||
---|---|---|---|
#18+
Alexander Lukjanenko, у баз данных в общем случае вообще нет номера строки. Почему бы не проставить номер в самом файле Excel, если он вам нужен? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2009, 21:48 |
|
VBA Excel ADO. Нумерация строк в SQL запросе.
|
|||
---|---|---|---|
#18+
ТСГде можно почитать полную документация по SQL запросам для Excel? Запросы к Эксель, это тоже самое что запросы к Акцесс, к SQL Server... Просто в качестве таблиц выступают либо листы, либо диапазоны ячеек. ТСкак указать номер строки в SQL запросе. "SELECT field1, field2 FROM [Sheet1$]" Вероятно Вы не понимаете, что такое язык структурированных запросов SQL. Выборка происходит по критериям, либо же по наличию связанных значений в объедененных таблицах. Как сказал F , у баз данных в общем случае вообще нет номера строки. Как вариант, это может быть автоматическое поле счетчик, но делать по нему отбор это не правильно. Раскажите, что Вы пытаетесь сделать, откуда коннектитись к файлу Экселя, зачем Вам выбирать запись по номеру строки, и почему это нельзя сделать без использования запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2009, 22:00 |
|
VBA Excel ADO. Нумерация строк в SQL запросе.
|
|||
---|---|---|---|
#18+
mЗапросы к Эксель, это тоже самое что запросы к Акцесс, к SQL Server... Просто в качестве таблиц выступают либо листы, либо диапазоны ячеек. Да, есть стандарты. К примеру ANSI SQL-92, но многие компании, занимающиеся разработкой СУБД (например, Oracle, Sybase, Microsoft, MySQL AB), вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Вот я и спрашиваю про особенности SQL для Excel. К примеру имя таблицы - "[Sheet1$]" уже отступ от стандарта. ИМХО. Мне нужен аналог функции ROW_NUMBER (Transact-SQL) http://msdn.microsoft.com/en-us/library/ms186734.aspx для выборки из Excel. Если он есть, прошу подскажите. mВероятно Вы не понимаете, что такое язык структурированных запросов SQL... У меня есть примерно 300 xls файлов. Их необходимо объединить и сформировать несколько отчетов (тоже xls). Объединение 300 файлов в 1 я выполнил, данные для отчетов я выбираю. Получаю таблицу вида: Имя |Фамилия|Должность Вася |Пупкин |Директор Петя |Иванов |Дворник Оля |Пупкина |Бухгалтер К этой таблице мне необходимо довавить колонку порядковый номер, чтоб получить таблицу вида: № |Имя |Фамилия|Должность 1 |Вася |Пупкин |Директор 2 |Петя |Иванов |Дворник 3 |Оля |Пупкина |Бухгалтер Это можно сделать "руками", написав дополнительный цикл. Или использовать функцию типа ROW_NUMBER (Transact-SQL). В MSSQL она есть, в Oracle есть аналогичная. Есть ли аналог данной функции для Excel? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2009, 23:32 |
|
VBA Excel ADO. Нумерация строк в SQL запросе.
|
|||
---|---|---|---|
#18+
Alexander Lukjanenkoчтоб получить таблицу вида: № |Имя |Фамилия|Должность 1 |Вася |Пупкин |Директор 2 |Петя |Иванов |Дворник 3 |Оля |Пупкина |Бухгалтер А вы сначала скажите, почему у дворника номер 2, а у бухгалтера номер 3 ? Нумерация имеет смысл только на отсортированном по некоему критерию наборе ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2009, 23:39 |
|
VBA Excel ADO. Нумерация строк в SQL запросе.
|
|||
---|---|---|---|
#18+
Alexander LukjanenkoВот я и спрашиваю про особенности SQL для Excel.Читай, наслаждайся: http://office.microsoft.com/en-us/access/HP010322501033.aspx Alexander LukjanenkoК примеру имя таблицы - "[Sheet1$]" уже отступ от стандарта. ИМХО.Вот это как раз не отступление. SQL не обязан знать как именно сервер хранит таблицы: в листах, файлах, виртуальных буферах или вообще на бумажках. Alexander LukjanenkoМне нужен аналог функции ROW_NUMBER (Transact-SQL) http://msdn.microsoft.com/en-us/library/ms186734.aspx для выборки из Excel.Нет такой. И вообще, нумерация строк это задача клиента а не сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2009, 00:30 |
|
VBA Excel ADO. Нумерация строк в SQL запросе.
|
|||
---|---|---|---|
#18+
2 Alexander Lukjanenko , Серьйозные товарищи йцкйцк и White Owl я так понимаю уже все Вам объяснили. С Вашего объяснения вообще не понятно, как будет использоваться запрос. Как вы объединили 300 файлов в один тоже не спрашиваю... Скажу еще такое, сам столкнулся недавно: при использовании ADODB в Экселе, возможна перегрузка оперативной памяти, так как Эксель не освобождает память при закрытии соеденения и снятия значения с объектной переменной. После 5-7 запросов, объем оперативной памяти, выделенной под Эксель, у меня равнялся 500 МБ! Об этом написано на сайте майкрософт здесь . Там же описаны варианты обхода такой ситуации, но мне они мало чем помогли. Ответьте, пожалуйста, на вопрос йцкйцк и расскажите подробнее как именно Вы хотите использовать запрос к Экселю и откуда он будет производиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2009, 11:08 |
|
VBA Excel ADO. Нумерация строк в SQL запросе.
|
|||
---|---|---|---|
#18+
1. в каталоге in находится ~300 xls файлов. структура одинакова. 2. в каталог out небходимо сформировать N xls файлов. 3. я пишу xls файл в котом кроме макроса и большой копки "Сформировать" ничего нет. - в начале обработки данных каталог out очищается - объединяю данные из ~300 xls файлов в один all.xls cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" + inFolder + ReportFile + ";" & _ "Extended Properties=""Excel 8.0;HDR=No;IMEX=1;""" strSQL = "INSERT INTO [" + DBListName + "$] IN '' [Excel 8.0;Database=" + outFolder + DBFileName + "] SELECT F1, F2, F3, F4, F5, F11, F45, F46, F48, f49, f51, f52, f53, f54, f55, f56, f57,f58, f59, f60,f61,f62 FROM [" + ReportWorkbookName + "$] where ((" + ReportWorkbookName + "$.F1 > '0'))" cnn.Execute strSQL - далее делаю выборку из all.xls. В выборку попадают записи только удовлетворющие нужным мне параметрам strSQL = "SELECT '' as 'number', f2,f3,'-' as 'ff1',f11,f45,f46,f48,f52,f45*f52/100 as 'ff2',f46*f52/100 as 'ff3',f49,'-'as 'ff4','-' as 'ff5','-' as 'ff6',f46*f52/100 as 'ff7' INTO [Excel 8.0;Database=" & _ "" + outfile_full + "].[" + page_name + "] FROM [" + DBListName + "$] where f51 = '" & TexSpdList(0, i) & "'" - вопрос был в том как пронумеровать строки в результирующей выборке. Ответ White Owl, исчерпывающий. Тему можно закрывать. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2009, 18:36 |
|
VBA Excel ADO. Нумерация строк в SQL запросе.
|
|||
---|---|---|---|
#18+
White OwlAlexander LukjanenkoВот я и спрашиваю про особенности SQL для Excel.Читай, наслаждайся: // http://office.microsoft.com/en-us/access/HP010322501033.aspx Alexander LukjanenkoК примеру имя таблицы - "[Sheet1$]" уже отступ от стандарта. ИМХО.Вот это как раз не отступление. SQL не обязан знать как именно сервер хранит таблицы: в листах, файлах, виртуальных буферах или вообще на бумажках. Alexander LukjanenkoМне нужен аналог функции ROW_NUMBER (Transact-SQL) http://msdn.microsoft.com/en-us/library/ms186734.aspx для выборки из Excel.Нет такой. И вообще, нумерация строк это задача клиента а не сервера. Ссылка не открывается, а инфо нужна. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2015, 09:07 |
|
VBA Excel ADO. Нумерация строк в SQL запросе.
|
|||
---|---|---|---|
#18+
Guest1White Owlпропущено... Читай, наслаждайся: // http://office.microsoft.com/en-us/access/HP010322501033.aspx пропущено... Вот это как раз не отступление. SQL не обязан знать как именно сервер хранит таблицы: в листах, файлах, виртуальных буферах или вообще на бумажках. пропущено... Нет такой. И вообще, нумерация строк это задача клиента а не сервера. Ссылка не открывается, а инфо нужна. Читай файл-справку к Акцессу 2003-му. Как я понимаю, один диалект скуля. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.07.2015, 11:10 |
|
|
start [/forum/topic.php?fid=61&fpage=45&tid=2173451]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 294ms |
total: | 423ms |
0 / 0 |