Форум: "Базы";
Текущий архив: 2003.06.16;
Скачать: [xml.tar.bz2];
ВнизЗапрос на разные даты Найти похожие ветки
← →
N&N (2003-05-23 12:13) [0]Уважаемые мастера, подскажите, пожалуйста, как составить запрос.
Суть такова - есть таблица Table1 с полями ID, Data, Field1, Field2, Field3.
как составить запрос, чтобы выбрать из полей Field1, Field2, Field3 на разные даты?
Что-то наподобие такого
select Field1, Field2, Field3 from Table1
where Field1 = ’01.01.03’ and
Field2 =’01.04.03’ and
Field3 = ’01.05.03’
← →
Johnmen (2003-05-23 12:36) [1]А чем не устраивает "такое" ?
← →
Zacho (2003-05-23 12:37) [2]Не понял, в каком поле все-таки даты содержатся ? И что все-таки в результате получить надо ?
← →
dash78 (2003-05-23 12:43) [3]select Field1, Field2, Field3
from Table1
where data in ( ’01.01.03’,01.04.03’, ’01.05.03’)
если я правильно понял вопрос :)
← →
N&N (2003-05-23 13:25) [4]To Zacho>Не понял, в каком поле все-таки даты содержатся ? И что все-таки в результате получить надо ?
Даты содержатся в поле Data, а получить надо выборку из полей Field1, Field2, Field3
Может быть так будет понятнее, что я хочу получить:
select Field1, Field2, Field3 from Table1
where Field1 for Data =’01.01.03’ and
Field2 for Data =’01.04.03’ and
Field3 for Data = ’01.05.03’
← →
Zacho (2003-05-23 13:29) [5]
> N&N (23.05.03 13:25)
> where Field1 for Data =’01.01.03’ and
> Field2 for Data =’01.04.03’ and
> Field3 for Data = ’01.05.03’
Что это такое ??? Это из какого диалекта SQL и что должно делать ?
← →
Johnmen (2003-05-23 13:33) [6]Короче... Приведи, как выглядит набор данных,который ты хочешь получить !
← →
N&N (2003-05-23 13:39) [7]To Zacho>Это из какого диалекта SQL и что должно делать ?
Из гипотетического, это я привел пример желаемого запроса, а вообще мне нодо, чтобы запросить и отобразить в DBGrid"e несколько стобцов на начало года (остатки на 01.01.03), а в других столбцах - на переменную дату, которую указывает юзер.
← →
balbes (2003-05-23 13:43) [8]select field1 from table1 t1
where t1.data=:date1
unoin
select field2 from table1 t2
where t2.data=:date2
union
select field3 from table1 t3
where t3.data=:date3
дальше пошли варианты
← →
Zacho (2003-05-23 14:07) [9]Не, похоже ему нужен не UNION, а JOIN этой таблицы с ней же.
Например, что-то типа этого:
SELECT T.FIELD1,
(SELECT T2.FIELD2 FROM TABLE1 T2 WHERE T2.DATA=:DATA),
...
FROM TABLE1 T
WHERE T1.DATA=..
← →
N&N (2003-05-23 16:05) [10]>for balbes and for Zacho
Извиняюсь за непроходимую тупость, но оба варианта у меня работают кривовато: в Gride в 1-й колонке все ОК, а в следующих колонках отображаюся одинаковые значения во всех строках сверху до низу, никак не догоню, почему. Вот такой упрощенный запрос по вашей подсказке:
Select SUM(t.field1),
(select SUM(t1.field2) from table1 t1
where t1.data="01.02.03"),
(select SUM(t2.field3) from Table1 t2
where t2.data="01.03.03")
from Table1 t
where t.data="01.01.03" group by field_N
← →
Zacho (2003-05-23 17:04) [11]
> N&N (23.05.03 16:05)
Более подробно опиши структуру таблицы.
← →
N&N (2003-05-26 07:59) [12]>Zacho, упрощенная структура:
ID INTEGER NOT NULL,
Name VARCHAR(20) CHARACTER SET WIN1251 NOT NULL,
DATA TIMESTAMP,
Field1 INTEGER,
Field2 INTEGER,
Field3 INTEGER,
PEREDAN_DEL_SUD INTEGER,
PRIMARY KEY (ID);
Как я уже писал, по составленному запросу выдает в 1-м столбце как надо, а во втором одинаковые во всех строках сверху донизу числа, равные сумме столбца по полю Field2, так же и в 3-м столбце, только отображаются суммы по полю Field3,
в Gride получается примерно такая картинка:
Name ! Field1 ! Field2 ! Field3
--------------------------------
Name1 5 135 124
Name2 7 135 124
Name3 9 135 124
... ... ... ...
NameN 6 135 124
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.06.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c