Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Выполнение запроса до метки  [new]
big_jump
Member

Откуда:
Сообщений: 28
Вот такая ситуация. Можно ли реализовать следующее? Есть 1 большой файл, сам запрос для него уже написан. Вот пример внутренностей файла:

39863 i 53 89.186.248.190:27623 2 75
39865 i 53 89.186.248.190:23079 2 75
39865 i 53 89.186.248.190:34404 2 71
39865 i 53 89.186.248.190:7451 2 73
39868 i 53 89.186.248.190:51210 2 78
# 62.76.252.1
39863 i 53 89.186.248.190:27623 2 75
39865 i 53 89.186.248.190:23079 2 75
39865 i 53 89.186.248.190:34404 2 71
39865 i 53 89.186.248.190:7451 2 73
39868 i 53 89.186.248.190:51210 2 78
# 62.76.252.2

Как сделать так, чтобы запросы выполнялся до определённой метки, в моём случае до знака # (если что, то эту метку можно поменять на что угодно), пропуская эту строку с меткой начинал выполнять запрос заново, а строку с меткой копировал после первого запроса в конечный результат.
Опишу подругому ещё. В результатх запроса хотелось бы видеть следующее:
результат 1ой части
скопированная строка с меткой ( # 62.76.252.1 )
результат 2ой части
следующая скопированная строка с меткой ( # 62.76.252.2 )
и т.д. много раз до конца файла.
Сразу предупрежу я мало что смыслю в написании запросов и буду очень благодарен за помощь. Спасибо.
10 июл 09, 09:30    [7400143]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
А у Вас MS SQL Server?
"Запрос для файла" покажите, пожалуйста.
10 июл 09, 09:38    [7400171]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
big_jump
Member

Откуда:
Сообщений: 28
iap
А у Вас MS SQL Server?
"Запрос для файла" покажите, пожалуйста.


Да MS SQL Server.

select top 5 ISNULL(LEFT(col004, NULLIF(CHARINDEX(':',col004),0)-1),col004) as ip, 
sum(convert(numeric(18,0),col006)) as truf
from (
SELECT col004, col006 FROM [90]
UNION ALL SELECT col004, col006 FROM [89]
) T
GROUP BY ISNULL(LEFT(col004, NULLIF(CHARINDEX(':',col004),0)-1),col004)
order by 2 desc

Ну я ещё другой запрос хотел бы потом сделать, но ещё не приступал к нему.
10 июл 09, 09:48    [7400211]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
И что это за [89] и [90]?!
10 июл 09, 09:54    [7400239]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
big_jump
Member

Откуда:
Сообщений: 28
pkarklin
И что это за [89] и [90]?!

Ой, прошу прощения, я перепутал, это другой запрос.
Вот правильный

select top 5 left(col004, CHARINDEX(':',col004) - 1) as ip, sum(convert(numeric(18,0),col006)) as truf
from [90]
GROUP BY left(col004, CHARINDEX(':',col004) - 1)
order by 2 desc

[90] - это название таблицы
10 июл 09, 12:03    [7401093]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
а причем туту файл ? если 90 -ето таблица ?
-------------------------------------
Jedem Das Seine
10 июл 09, 12:14    [7401187]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
big_jump
Member

Откуда:
Сообщений: 28
Maxx
а причем туту файл ? если 90 -ето таблица ?


Я этот файл засуну в enterprice manager и будет таблица.
10 июл 09, 12:27    [7401284]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
big_jump
Я этот файл засуну в enterprice manager и будет таблица.


Куда, простите, засуните?! Структуру таблице нам надо угадать?
10 июл 09, 12:51    [7401453]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Интересно.

"Метки" - в файле
Запрос - к таблиам
А вопрос-то о чём?
10 июл 09, 12:53    [7401475]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
big_jump
Member

Откуда:
Сообщений: 28
pkarklin
big_jump
Я этот файл засуну в enterprice manager и будет таблица.


Куда, простите, засуните?! Структуру таблице нам надо угадать?


структура таблицы выглядит также как и приведённые мной внутренности файла

Картинка с другого сайта.
10 июл 09, 13:14    [7401625]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
big_jump
Member

Откуда:
Сообщений: 28
iap
Интересно.

"Метки" - в файле
Запрос - к таблиам
А вопрос-то о чём?


2 iap

Мой запрос выдёт в ответ мне вот такую штуку

Картинка с другого сайта.

А я хотел бы чтобы было вот так

Картинка с другого сайта.

Только не смейтесь надо мной.
10 июл 09, 13:16    [7401631]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
Glory
Member

Откуда:
Сообщений: 104760
big_jump
iap
Интересно.

"Метки" - в файле
Запрос - к таблиам
А вопрос-то о чём?


2 iap

Мой запрос выдёт в ответ мне вот такую штуку

Картинка с другого сайта.

А я хотел бы чтобы было вот так

Картинка с другого сайта.

Только не смейтесь надо мной.

И по какой логике во второй результат из первого попали эти # 62.76.252.1 ?
10 июл 09, 13:17    [7401645]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
а какое отношение 2 вторые картинки имеют к первой ?????
там поля col0001, а в двух других ip???
а запрос к первой без условия where.....

чет или савсем пятница или я ничего не понимаю
-------------------------------------
Jedem Das Seine
10 июл 09, 13:22    [7401679]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Maxx,

сорри - таки пятница, не спал..
10 июл 09, 13:24    [7401691]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
big_jump
iap
Интересно.

"Метки" - в файле
Запрос - к таблиам
А вопрос-то о чём?


2 iap

Мой запрос выдёт в ответ мне вот такую штуку

Картинка с другого сайта.

А я хотел бы чтобы было вот так

Картинка с другого сайта.

Только не смейтесь надо мной.
Откуда возьмутся #62.76.252.1, #62.76.252.2 и т.д.?
Вы их тоже в какую-то таблицу загнали?

Если да, то Вам, похоже, нужен CROSS JOIN таблицы данных с таблицей меток.
Ну и помучиться, чтобы показать данные в том виде, как у Вас на картинках.
10 июл 09, 13:31    [7401747]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
big_jump
Member

Откуда:
Сообщений: 28
Попробую теперь рассказать всё как можно более развёрнуто и что и для чего я хочу сделать.
Имеется 30 папок (типа по одной на каждый месяц), в каждой папке около 1000 файлов (везде по разному), каждый файл имеет название в виде ip адреса. Внутри каждого файла вот такие данные (везде разные, и разное количество):

39863 i 53 89.186.248.190:27623 2 75
39865 i 53 89.186.248.190:23079 2 75
39865 i 53 89.186.248.190:34404 2 71
39865 i 53 89.186.248.190:7451 2 73
39868 i 53 89.186.248.190:51210 2 78
и т.д.

Подобные файлы я засовываю в ms sql server через enterprice manager, после получаются таблицы вот такого вида

Картинка с другого сайта.

Далее я выполняю запрос, он выдаёт мне 5 строк и колонки, вот такие:

Картинка с другого сайта.

Само собой 30 тыс. файлов обработать вручную это бред, поэтому я их склеиваю (cmd copy), но даже так получается около 1000 файлов (каждый ip с инфой за месяц). Поэтому я подумал склеить это всё в 1 файл и обрать уже его. Потом задался мыслью каким образом это всё сможет обработать sql чтобы ответ не смешивал всё, а выдавал информацию после запроса по абзацам, на каждый абзац свой ip адрес. Я решил (возможно я поторопился) что добавив строку с какой-нибудь информацией (метка), в конец каждого файла перед конечной склейкой, можно будет как-то различить ответ запроса, чтобы на выходе он показывал расчёты по абзацу до первой метки, потом считал заново другой абзац до другой метки, а те самые метки копировал чтобы можно было отделить различные ответы запроса.
13 июл 09, 10:52    [7407183]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
Glory
Member

Откуда:
Сообщений: 104760
big_jump

Само собой 30 тыс. файлов обработать вручную это бред,

Конечно бред. Поэтому люди пишут программы импорта.
Хошь свои, хошь на основе DTS, хошь на основе утилиты bcp
И не паряться со склейкой файлов.
13 июл 09, 16:25    [7409620]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
big_jump
Member

Откуда:
Сообщений: 28
Glory
Конечно бред. Поэтому люди пишут программы импорта.
Хошь свои, хошь на основе DTS, хошь на основе утилиты bcp
И не паряться со склейкой файлов.


спасибо, буду знать
14 июл 09, 09:35    [7411636]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение запроса до метки  [new]
Ох...ий программизд
Guest
big_jump,

ничо не понял, но может быть аффтару нужно сделать примерно такую вот таблицу?
create table [90] (ip nvarchar(50), [метка] nvarchar (50))
14 июл 09, 10:17    [7411840]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить