Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SQL Запрос


vitnt2000 ©   (2002-03-20 07:05:00) 

У меня есть таблица типа:
№параметра Значение Дата
1 1111 01.01
2 2222 01.01
1 3333 02.01
2 4444 02.01
Подскажите, пожалуйста как написать SQL запрос чтобы получить таблицу вида:
Дата Параметр№1 Параметр№2
01.01 1111 2222
02.01 3333 4444


vitnt2000   (2002-03-21 08:16:00) [1]

Например если три:
SELECT Q1.DATE Дата,
Q1.VAL Параметр1,
Q2.VAL Параметр2,
Q3.VAL Параметр3
FROM "E:\\qdgntmk.dbf" Q1
INNER JOIN "E:\\qdgntmk.dbf" Q2
ON (Q1.DATE = Q2.DATE)
INNER JOIN "E:\\qdgntmk.dbf" Q3
ON (Q1.DATVV = Q3.DATVV)
WHERE (Q1.PAR = 1) AND (Q2.PAR = 2) AND (Q3.PAR = 3)
А если произволное число, то Запрос можно создавать в цикле...


fnatali   (2002-03-21 08:00:00) [2]

А если количество параметров не определено? :)
Или их всё время только два?


vitnt2000   (2002-03-21 07:56:00) [3]

А получилось примерно так:
SELECT Q1.DATE Дата, Q1.VAL Параметр1, Q2.VAL Параметр1
FROM "E:\\qdgntmk.dbf" Q1
INNER JOIN "E:\\qdgntmk.dbf" Q2
ON (Q1.DATE = Q2.DATE)
WHERE (Q1.PAR = 1) AND (Q2.PAR = 2)

Где Q1,Q2 виртуальные таблицы
Date - поле даты
Par - поле № параметра
VAl - значение


kva   (2002-03-20 15:06:00) [4]

To vitnt200
Ежели получилось, то покажи как! А то ведь в другой раз и смотреть вопросы не будет никто!
С уважением, КВА


vitnt2000   (2002-03-20 14:04:00) [5]

Всем спасибо! Получилось!


Кузнецов   (2002-03-20 13:29:00) [6]

2vitnt2000 sorry


vitnt2000   (2002-03-20 11:22:00) [7]

>>Кузнецов
Мне нужно не сложить данные за дату, а распложить каждый параметр в отдельном поле.


Кузнецов   (2002-03-20 09:49:00) [8]

Это у меня работает с *.DBF файлами

SELECT Dh410.SP909, SUM( Dh410.SP428 - Dh410.SP3655 ) as Sum_
FROM "DH410.DBF" Dh410
WHERE Dh410.SP909 BETWEEN :p1 AND :p2
GROUP BY Dh410.SP909
ORDER BY Dh410.SP909
Где поле SP909- дата
Где поле SP428- числовое значение, т.ё запрос групирует данные по дате и складывает числовые значения относящиеся к данной дате.
p1 -начало временнного интервала
p2 -его конец


DiggerAbstract   (2002-03-20 09:24:00) [9]

select
t1.date,
t1.par,
t2.par
from
table as t1
inner join table as t2 on t1.date=t2.date


fnatali   (2002-03-20 08:10:00) [10]

попробуй использовать DecisionCube


Наверх

Титульная страница Поиск, карта сайта Написать письмо