Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите составить запрос sql / 25 сообщений из 28, страница 1 из 2
31.03.2004, 12:23
    #32463633
vi007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
Уважаемые мастера !

Ни ка не могу справиться с задачей.

есть таблица
T1

name dt ev
--------------------------------------------
Иванов |30.03.2004 9:00 |7
Иванов |30.03.2004 10:00 |8

подскажите как получить из нее одной с помощю одного запроса
такую:

name dt1 ev1 dt2 ev2
----------------------------------------------------------
Иванов |30.03.2004 9:00 | 7 |30.03.2004 10:00 |8
...
Рейтинг: 0 / 0
31.03.2004, 12:40
    #32463678
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
И что, если записей про Петрова не две, а три, то выходных полей уже не 5, а 7 будет?

Нельзя. Если только через вычисляемые (на сервере) поля и хранимые процедуры.
...
Рейтинг: 0 / 0
31.03.2004, 12:47
    #32463700
vi007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
да нет

записей дествительно больше,
но они обязательно повторяются с 7 и 8.
Тогда будет:


name dt1 ev1 dt2 ev2
----------------------------------------------------------
Иванов |30.03.2004 9:00 | 7 |30.03.2004 10:00 |8
Иванов |30.03.2004 10:50| 7 |30.03.2004 11:00 |8

А если с ХП то ка организовать?
...
Рейтинг: 0 / 0
31.03.2004, 12:49
    #32463703
vi007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
да нет

записей дествительно больше,
но они обязательно повторяются с 7 и 8.
Тогда будет:


name dt1 ev1 dt2 ev2
----------------------------------------------------------
Иванов |30.03.2004 9:00 | 7 |30.03.2004 10:00 |8
Иванов |30.03.2004 10:50| 7 |30.03.2004 11:00 |8

А если с ХП то ка организовать?
...
Рейтинг: 0 / 0
31.03.2004, 12:51
    #32463713
Павел Воронцов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
Код: plaintext
1.
2.
3.
select name, max(case ev when  7  then dt end) as dt7,
max(case ev when  8  then dt end) as dt8
from T!
group by name
...
Рейтинг: 0 / 0
31.03.2004, 13:52
    #32463851
vi007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
select name, max(case ev when 7 then dt end) as dt7,
max(case ev when 8 then dt end) as dt8
from T!
group by name


на это место ругается, ошибка синтаксиса, пропущен оператор?
из-за чего
...
Рейтинг: 0 / 0
31.03.2004, 13:55
    #32463860
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
Замени "T!" на "T1"
...
Рейтинг: 0 / 0
31.03.2004, 14:04
    #32463885
vi007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
case ev when

Причем здесь Т! и Т1
...
Рейтинг: 0 / 0
31.03.2004, 14:07
    #32463896
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
Может, у тебя не FB 1.5?
...
Рейтинг: 0 / 0
31.03.2004, 14:17
    #32463931
vi007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
нет, у меня запрос в delphi через IBQuery
...
Рейтинг: 0 / 0
31.03.2004, 14:24
    #32463944
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
1. Сервер какой? InterBase/Yaffil/FireBird ?

2. Если через BDE, то, возможно, он на клиенте проверяет скрипт, и просто не знает конструкции CASE
...
Рейтинг: 0 / 0
31.03.2004, 14:24
    #32463946
vi007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
у меня FB 1.5 стоит
...
Рейтинг: 0 / 0
31.03.2004, 14:28
    #32463958
vi007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
Сервер InterBase
...
Рейтинг: 0 / 0
31.03.2004, 16:01
    #32464268
Dik76
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
Та IB или FB?
...
Рейтинг: 0 / 0
31.03.2004, 16:02
    #32464272
mv
mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
Он прикалывается!
...
Рейтинг: 0 / 0
31.03.2004, 16:06
    #32464285
Dik76
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
vi007Причем здесь Т! и Т1
У тебя таблица T1 называется, а у нее поле EV .
...
Рейтинг: 0 / 0
31.03.2004, 16:08
    #32464290
Dik76
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
А по серверу надо как-то определится :)
...
Рейтинг: 0 / 0
01.04.2004, 06:22
    #32464812
vi007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
Дак че, ни кто ни может помочь?

сервер FB 1.5
клиента пишу на delphi 6
запрос надо сделать через IBQuery

Помогите же ламеру в IB и FB!
...
Рейтинг: 0 / 0
01.04.2004, 09:25
    #32464880
FreemanZAV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
Попробуй UDF DtIf из библиотеки rFunc. Вместо:
select name, max(case ev when 7 then dt end) as dt7,

max(case ev when 8 then dt end) as dt8

from T!

group by name

сделай так:

select name, max(DtIf (ev-7, '01.01.1900 00:00:00', cast(dt as TIMESTAMP))) as dt7,
max(DtIf (ev-8, '01.01.1900 00:00:00', cast(dt as TIMESTAMP))) as dt8
from T!
group by name
...
Рейтинг: 0 / 0
01.04.2004, 12:16
    #32465263
vi007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
че то ни как не получается...

Еще есть проблема.
По кнопке
делаю запрос и с помощю цикла добавляю данные в
другую таблицу.

for s:=0 to t.IBDataSet1.RecordCount do
begin
t.Table1.Append;
t.Table1CLI_N.Text:=Uchet.IBDataSet1CLI_N.Text;
t.Table1F_NAME.Text:=Uchet.IBDataSet1F_NAME.Text;
t.Table1DT.Text:=Uchet.IBDataSet1DT.Text;
t.Table1EV_TEXT.Text:=Uchet.IBDataSet1EV_TEXT.Text;
t.Table1EV_N.Text:=Uchet.IBDataSet1EV_N.Text;
t.Table1TMEND.Text:=Uchet.IBDataSet1TMEND.Text;
t.Table1TMBEG.Text:=Uchet.IBDataSet1TMBEG.Text;
t.Table1.Post;
t.IBDataSet1.Next;
end;

При выполнении добавляются две три строки
при повторном - еще строк пять, далее строк двадцать...

вчем же дело?
Подозреваю с транзакцией... но что?
...
Рейтинг: 0 / 0
01.04.2004, 12:41
    #32465317
FreemanZAV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
1. Что выдает при попытке выполнить запрос.
2. for s:=0 to t.IBDataSet1.RecordCount do.
Так никто не делает, поскольку кол. запсей часто бывает неизвестно (почему, почитай в Help). Надо так:
t.IBDataSet1.First; while not t.IBDataSet1.Eof do
...
Рейтинг: 0 / 0
01.04.2004, 12:52
    #32465350
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
Перед
for s:=0 to t.IBDataSet1.RecordCount do поставь
t.IBDataSet1.FetchAll;

Т.к. RecordCount не выдает нормально кол-во записей без вызова FetchAll ...

Best regards,
Dnico.
...
Рейтинг: 0 / 0
01.04.2004, 12:55
    #32465363
Dnico
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
Но таким способом (как я написал) лучше пользоваться, когда ты точно уверен, что записей у тебя не очень много. Иначе будут кранты ...
Лучше делать так, как написал FreemanZAV

Best regards,
Dnico.
...
Рейтинг: 0 / 0
01.04.2004, 13:10
    #32465403
vi007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
УРА !!!!!!!!
В ТОЧКУ!!!!
ВСЕ ЗАРАБОТАЛО!!!!

СПАСИБО.

FreemanZAV
t.IBDataSet1.First; while not t.IBDataSet1.Eof do

А вот еще:)

поле DT типа timeshtamp
в нем дата и время.
как конвертнуть во время?
просто ни когда не встречался я с таким:(
...
Рейтинг: 0 / 0
01.04.2004, 13:17
    #32465419
FreemanZAV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите составить запрос sql
cast( Dt as time)
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите составить запрос sql / 25 сообщений из 28, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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