![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос
Link © (2002-06-19 11:37:00)Прошу помощи! Учусь работать с базами и составил запрос
select
dst_ip ,
sum(sent),
sum(recv)
from traffic
WHERE (SELECT DATEPART(mm, today)) = "2"
and(SELECT DATEPART (dd, today)) between "20" and "28"
and
sent > 0
and recv >0
group by dst_ip
Подскажите, что не так в шестой и седьмой строчке.
Заранее спасибо!
MOA (2002-06-19 13:58:00) [1]2Link: Когда создаете алиас на MSSQL (через БДЕ) скажите тип драйвера MSSQL. В именах - ничего особенного.
Однако, если Вам нужно просто записать таблицы Paradox в MSSQL, воспользуйтесь DTS - это проще. И не без пользы, если Вы будете работать с MSSQL.
И не забудьте поставить клиента!
А запросы - похожи, но не настолько. Такие - да (ну, datepart не в счет). Но очень многое по-другому. Начиная с идеологии построения системы и заканчивая более развитым языком запросов.
Удачи!
VAleksey (2002-06-19 13:26:00) [2]Local SQL понимает вложенные запросы.
в Local SQL ЕСТЬ функция которая может расщепить дату. И вообще см. LocalSQL.hlp
fnatali (2002-06-19 13:12:00) [3]>Link (19.06.02 13:04)
Дело в том, что синтаксис SQL для разных СУБД несколько отличается. И запрос, написанный для MSSQL не обязательно будет работать для Paradox.
Link (2002-06-19 13:04:00) [4]Существует программа на SQL и меня попросили написать к ней приложение на Delphi. Самой базы у меня нет, мы не успели её скачать. Но я сделал схожую базу в Paradox. И выясняется, что запросы соответствуют MSSQL. Я попробовал сделать такую же базу в MSSQL, а Database Desktop говорит, что Chosen alias is not of type MSSQL.
MOA (2002-06-19 12:42:00) [5]Если Вы Все же работаете с MSSQL и только начали проект - IMHO, лучше ADO.
А кто говорит про тип? Что именно говорит? Как именно Вы создаёте таблицу?
Link (2002-06-19 12:35:00) [6]Ребят, а чё у меня, когда создаю MSSQL таблицу, пишется, что alias не того типа. Тут что по-особому надо имя придумывать?
Link (2002-06-19 12:21:00) [7]Не знаю. Я только пятый день за базами. Может и нет в Paradox Datepart. Остальные варианты не помогли. А есть в Paradox эквивалентная функция? Просто очень нужно дату расчленить.
MOA (2002-06-19 12:07:00) [8]Пока писал ответ - обнаружилось, что за база. Сорри за MSSQL. А в Paradox есть DATEPART?
И в любом случае - ошибка во внутренних селектах - что же там выбирается? Откуда? Где связь с таблицей? (То что это поле таблицы - это не связь. Во вложенных SELECT FROM отсутствует. Откуда теперь брать today?). И движку это тоже неясно.
Удачи!
MOA (2002-06-19 11:59:00) [9]Это MSSQL, видимо?
today - это поле таблицы? Если нужна текущая дата, то в MSSQL это функция GETDATE().
Далее, по описанию DATEPART возвращает ЦЕЛОЕ (integer), т.е.
DATEPART(mm, today)=2 (без кавычек). Ну и второй аналогично.
Далее, непонятны 2 SELECT внутри - если today - это поле таблицы, то какой? Если это текущая дата - нет связи с таблицей traffic.
Т.е. варианты:
1. если today - это поле traffic
select
dst_ip ,
sum(sent),
sum(recv)
from traffic
WHERE DATEPART(mm, traffic.today) = 2
and DATEPART(dd, traffic.today) between 20 and 28
and
sent > 0
and recv >0
group by dst_ip
2. Если today - это попытка получить текущую дату, то непонятно о чем речь.
Удачи!
wicked (2002-06-19 11:58:00) [10]2 Link
повторяю - запрос для local sql засложен... он не понимает вложенных запросов... попробуй поубирать select"ы...
Link (2002-06-19 11:52:00) [11]А если имеется в виду дата в поле Today?
wicked (2002-06-19 11:49:00) [12]2 Link
а paradox имхо вообще такой запрос не проглотит...
Link (2002-06-19 11:47:00) [13]База Paradox.
Если интересуют поля, то
Dst_ip sent recv today
А ошибку выдаёт: лишняя скобка, когда убираешь, то лишнее between и так далее...
wicked (2002-06-19 11:47:00) [14]судя по функциям и синтаксису - это mssql...
а ошибка может быть в том, что в mssql нету такой функции, как today... ведь это не поле в таблице traffic?...
если имелась в виду текущая дата, то надо использовать getdate()...
и еще... в данном случае select"ы под where можно не использовать - уж очень неудобно читать...
GT-9121A (2002-06-19 11:40:00) [15]какая база, какая ошибка?