Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема с запросом / 15 сообщений из 15, страница 1 из 1
02.12.2002, 16:20:57
    #32074723
Дмитрий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Есть две таблицы FireWallLog и WebProxyLog, в них есть поля с одинаковыми идентификаторами:ClientIP и bytesrcvd
Нужно составить запрос чеб получить сумму полученных байтов по каждому IP

SELECT ClientIP AS IP, SUM(bytesrecvd) +
(SELECT SUM(Firewalllog.bytesrecvd)
FROM Firewalllog
WHERE FireWallLog.ClientIP = ClientIP
GROUP BY FireWallLog.ClientIP) AS Получено
FROM WebProxyLog
GROUP BY ClientIP

Тут говорит TimeOut Expiert
Мож как по другому надо? Хелп плиз
...
Рейтинг: 0 / 0
02.12.2002, 16:21:00
    #32074725
Дмитрий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Есть две таблицы FireWallLog и WebProxyLog, в них есть поля с одинаковыми идентификаторами:ClientIP и bytesrcvd
Нужно составить запрос чеб получить сумму полученных байтов по каждому IP

SELECT ClientIP AS IP, SUM(bytesrecvd) +
(SELECT SUM(Firewalllog.bytesrecvd)
FROM Firewalllog
WHERE FireWallLog.ClientIP = ClientIP
GROUP BY FireWallLog.ClientIP) AS Получено
FROM WebProxyLog
GROUP BY ClientIP

Тут говорит TimeOut Expiert
Мож как по другому надо? Хелп плиз
...
Рейтинг: 0 / 0
02.12.2002, 16:24:21
    #32074728
Lexis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
возможно для таблиц не определены индексы
...
Рейтинг: 0 / 0
02.12.2002, 16:26:41
    #32074730
Дмитрий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
ПРошу прощения. грит не TimeOut Expiert, a Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <=, >, >= or when the subquery is used as an expression.
Что это значит?
...
Рейтинг: 0 / 0
02.12.2002, 16:33:49
    #32074736
Дмитрий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Сам то запрос корректно написан? Должен работать?
...
Рейтинг: 0 / 0
02.12.2002, 17:00:09
    #32074761
RedPank
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Внутренний Select возвращает более 1-ой записи:

Код: plaintext
1.
2.
3.
4.
SELECT SUM(Firewalllog.bytesrecvd) 
FROM Firewalllog 
WHERE FireWallLog.ClientIP = ClientIP 
GROUP BY FireWallLog.ClientIP


Ты уверен, что в выражении
Код: plaintext
WHERE FireWallLog.ClientIP = ClientIP 

берется ClientIP именно из внешнего запроса ??? Я не очень ... Скорее всего
FireWallLog.ClientIP и ClientIP одно и то-же поле из внутреннего запроса.
Замени на
Код: plaintext
WebProxyLog.ClientIP = ClientIP 
...
Рейтинг: 0 / 0
02.12.2002, 17:08:53
    #32074766
Дмитрий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Теперь: TimeOut Expiert
...
Рейтинг: 0 / 0
02.12.2002, 17:08:57
    #32074767
Сергей В.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Думаю проблема в этом:
WHERE FireWallLog.ClientIP = ClientIP
GROUP BY FireWallLog.ClientIP
попробуй так:
WHERE FireWallLog.ClientIP = WebProxyLog.ClientIP
...
Рейтинг: 0 / 0
02.12.2002, 17:17:51
    #32074776
Дмитрий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Пробовал и так и эдак: TimeOut Expiert. Где можно подкрутить чеб TimeOut увеличить?
...
Рейтинг: 0 / 0
02.12.2002, 17:42:50
    #32074790
av2000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
GROUP BY ...
вообще не нужен
...
Рейтинг: 0 / 0
02.12.2002, 17:48:40
    #32074794
av2000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
а лучше всего итоговые данные формировать прямо в таблице клиент через триггеры, тогда не надо будет каждый раз лопатить длиннющий лог.
...
Рейтинг: 0 / 0
02.12.2002, 17:52:24
    #32074796
vap
vap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Скорее всего запрос неправильно написан. Размер таблиц большой?
Timeout в анализере выставляется Menu/Tools/Options/Закладка Connections
Может так попробовать?

Код: plaintext
1.
2.
SELECT w.ClientIP AS IP, SUM(f.bytesrecvd) + SUM(f.bytesrecvd)  as [Получено]
FROM WebProxyLog w, Firewalllog f
GROUP BY w.ClientIP 
...
Рейтинг: 0 / 0
02.12.2002, 17:54:01
    #32074797
vap
vap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
Соединение пропустил,

Код: plaintext
1.
2.
3.
SELECT w.ClientIP AS IP, SUM(f.bytesrecvd) + SUM(f.bytesrecvd)  as [Получено]
FROM WebProxyLog w, Firewalllog f
WHERE w.ClientIP = f.ClientIP 
GROUP BY w.ClientIP 
...
Рейтинг: 0 / 0
02.12.2002, 18:54:12
    #32074836
Сергей АБ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
2 vap. А при разном количестве строк с одинаковым ClientIP в таблицах WebProxyLog и Firewalllog, как группировка сработает? По исходному колличеству в таблицах до связи, или по конечной двумерной выборке. Ведь в последнем варианте может получиться неверная сумма. Какие, интересно, в таблицах ограничения уникальности? А-то ведь связывание может получиться перемножением множеств по ClientIP. По-моему нужно просто конкретизировать, что от куда

SELECT
W.ClientIP AS IP,
SUM(W.bytesrecvd) +
isnull((SELECT SUM(F.bytesrecvd)FROM Firewalllog F WHERE F.ClientIP = W.ClientIP GROUP BY F.ClientIP), 0)
AS Получено
FROM WebProxyLog W
GROUP BY W.ClientIP
...
Рейтинг: 0 / 0
02.12.2002, 23:33:23
    #32074877
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом
По другому надо

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
declare @ClientIP varchar( 15 )
...
select t.IP, SUM(t.bytesrecvd)as bytesrecvd from
(
SELECT ClientIP AS IP, SUM(bytesrecvd)as bytesrecvd
FROM WebProxyLog 
WHERE ClientIP = @ClientIP 
GROUP BY ClientIP 

union 

SELECT ClientIP AS IP, SUM(bytesrecvd)as bytesrecvd
FROM Firewalllog 
WHERE ClientIP = @ClientIP 
GROUP BY ClientIP
) as t
GROUP BY IP
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблема с запросом / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]