Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Group By по дате / 25 сообщений из 27, страница 1 из 2
19.10.2009, 16:21
    #36259987
1
1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
Подскажите с запросом? Т.е как указать чтоб группировал только по дате исключая время?
Использовать в group by - substring(convert(varchar(10),starttime,112),1,10) ?


есть таблица
starttimeobject m_12009-10-18 0:001252009-10-18 0:002152009-10-18 0:003252009-10-18 1:001102009-10-18 1:002302009-10-18 1:003202009-10-19 0:001402009-10-19 0:002202009-10-19 0:003102009-10-19 1:00152009-10-19 1:002352009-10-19 1:00325

нужно получить следующее
starttimeobject m_12009-10-18 1352009-10-18 2452009-10-18 3452009-10-19 1452009-10-19 2552009-10-19 335

то есть группировка по starttime и object
делаю так:
Код: plaintext
1.
2.
3.
select starttime, object, SUM(m_1)
from   tbl_1
group by starttime, object
...
Рейтинг: 0 / 0
19.10.2009, 16:22
    #36259990
1
1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
забыл указать

ASE/11.9.2
...
Рейтинг: 0 / 0
19.10.2009, 16:28
    #36260015
Mikle83
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
Код: plaintext
group by Convert(Date, TBNAME.starttime)
можно так
...
Рейтинг: 0 / 0
19.10.2009, 16:30
    #36260021
Mikle83
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
ну и соответственно в выборке то же самое надо написать
Код: plaintext
1.
2.
3.
Select
 Convert(Date, TBNAME.starttime), object, SUM(m_1)
from   tbl_1
group by Convert(Date, TBNAME.starttime), object
...
Рейтинг: 0 / 0
19.10.2009, 16:51
    #36260115
1
1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
ругается на тип данных Date.
DateTime - работает
...
Рейтинг: 0 / 0
19.10.2009, 16:54
    #36260130
1
1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
Код: plaintext
Convert(varchar( 11 ), starttime)
а вот так заработало))
выше писал эту строку но что то не получилось с ней

спасибо за помощь Mikle83
...
Рейтинг: 0 / 0
19.10.2009, 16:58
    #36260151
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
Mikle83 пишет:

> group by Convert(Date, TBNAME.starttime)

А в ASE 11.9.2 была чистая дата (без времени)?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.10.2009, 09:57
    #36261222
Mikle83
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
Dim2000,
эм... честно не знаю - столкнулся с АСЕ начиная с 12.0
но как вариант
Код: plaintext
convert(varchar, @D,  104 )
думаю это было с рождения АСЕ :)
...
Рейтинг: 0 / 0
20.10.2009, 14:39
    #36262071
1
1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
задам еще сюда вопросец, как бы продолжение.
Не могу теперь в исходной таблице (пусть она будет t1 ) заменить t1.object именами из другой таблицы (пусть будет t2 ).
таблица t2
object_id object_name0ppp1ddd2fff3ttt4ggg

пытаюсь сделать запрос, выдает в результате все объекты из таблицы t2 и по ним сумму

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select 
        convert(varchar( 11 ), t1.starttime, 112 ),
        t2.object_name,
        sum(t1.m_1)

from t1, t2  

where 
        t1.object =  t2.object_id

group by
            convert(varchar( 11 ), t1.starttime, 112 ),
            t1.object

сделал аналог в mysql
там все работает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
mysql> use test
Database changed
mysql> select * from t1;
+---------------------+--------+------+
| starttime           | object | m_1  |
+---------------------+--------+------+
|  2009 - 10 - 18   00 : 00 : 00  |       1  |    25  |
|  2009 - 10 - 18   00 : 00 : 00  |       2  |    15  |
|  2009 - 10 - 18   00 : 00 : 00  |       3  |    25  |
|  2009 - 10 - 18   01 : 00 : 00  |       1  |    10  |
|  2009 - 10 - 18   01 : 00 : 00  |       2  |    30  |
|  2009 - 10 - 18   01 : 00 : 00  |       3  |    20  |
|  2009 - 10 - 19   00 : 00 : 00  |       1  |    40  |
|  2009 - 10 - 19   00 : 00 : 00  |       2  |    20  |
|  2009 - 10 - 19   00 : 00 : 00  |       3  |    10  |
|  2009 - 10 - 19   01 : 00 : 00  |       1  |     5  |
|  2009 - 10 - 19   01 : 00 : 00  |       2  |    35  |
|  2009 - 10 - 19   01 : 00 : 00  |       3  |    25  |
+---------------------+--------+------+
 12  rows in set ( 0 . 03  sec)


mysql> select date_format(starttime,'%Y-%m-%d'), object, sum(m_1) from t1
    -> group by date_format(starttime,'%Y-%m-%d'),object;
+-----------------------------------+--------+----------+
| date_format(starttime,'%Y-%m-%d') | object | sum(m_1) |
+-----------------------------------+--------+----------+
|  2009 - 10 - 18                         |       1  |        35  |
|  2009 - 10 - 18                         |       2  |        45  |
|  2009 - 10 - 18                         |       3  |        45  |
|  2009 - 10 - 19                         |       1  |        45  |
|  2009 - 10 - 19                         |       2  |        55  |
|  2009 - 10 - 19                         |       3  |        35  |
+-----------------------------------+--------+----------+
 6  rows in set ( 0 . 00  sec)

mysql> select * from t2;
+-------+----------+
| objid | obj_name |
+-------+----------+
|      0  | fyo      |
|      1  | tii      |
|      2  | oor      |
|      3  | qww      |
|      4  | see      |
+-------+----------+
 5  rows in set ( 0 . 00  sec)

mysql> select date_format(t1.starttime,'%Y-%m-%d'), t2.obj_name, sum(t1.m_1) fro
m t1, t2
    -> where t1.object = t2.objid
    -> group by date_format(t1.starttime,'%Y-%m-%d'),t1.object;
+--------------------------------------+----------+-------------+
| date_format(t1.starttime,'%Y-%m-%d') | obj_name | sum(t1.m_1) |
+--------------------------------------+----------+-------------+
|  2009 - 10 - 18                            | tii      |           35  |
|  2009 - 10 - 18                            | oor      |           45  |
|  2009 - 10 - 18                            | qww      |           45  |
|  2009 - 10 - 19                            | tii      |           45  |
|  2009 - 10 - 19                            | oor      |           55  |
|  2009 - 10 - 19                            | qww      |           35  |
+--------------------------------------+----------+-------------+
 6  rows in set ( 0 . 00  sec)
...
Рейтинг: 0 / 0
20.10.2009, 15:06
    #36262145
cherrex_Den
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
а так?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select 
        convert(varchar( 11 ), t1.starttime, 112 ),
        t2.object_name,
        sum(t1.m_1)

from t1, t2  

where 
        t1.object =  t2.object_id

group by
            convert(varchar( 11 ), t1.starttime, 112 ),
            t2.object_name
...
Рейтинг: 0 / 0
20.10.2009, 15:26
    #36262218
1
1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
так тоже не работает
а вот в mysql почему то сработало
...
Рейтинг: 0 / 0
20.10.2009, 15:38
    #36262267
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
1 пишет:

> а вот в mysql почему то сработало

Ничего удивительного: ASE и Mysql - разные продукты ;).
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
20.10.2009, 15:41
    #36262277
1
1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
да понимаю что разные
но как можно реализовать в ASE это?
...
Рейтинг: 0 / 0
20.10.2009, 15:54
    #36262320
cherrex_Den
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
1так тоже не работает
а вот в mysql почему то сработало

так что выдает?
...
Рейтинг: 0 / 0
20.10.2009, 16:01
    #36262345
Mikle83
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
А пользовать джойны религия не позволяет? :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select 
        convert(varchar( 11 ), t1.starttime, 112 ),
        t2.object_name,
        sum(t1.m_1)

from t1
 join t2 on t1.object =  t2.object_id
group by
            convert(varchar( 11 ), t1.starttime, 112 ),
            t2.object_name

попробуйте так
...
Рейтинг: 0 / 0
20.10.2009, 16:12
    #36262375
1
1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
cherrex_Den
получилось спасибо!

сорри за невнимательность, в запросе забыл указать суммирование столбца
из-за этого выдало не тот результат

Mikle83 а с join что то ругается на синтаксис
...
Рейтинг: 0 / 0
20.10.2009, 16:14
    #36262380
Mikle83
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
подозреваю, что на Вашей версии надо писать inner join
...
Рейтинг: 0 / 0
20.10.2009, 16:46
    #36262462
1
1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
при inner join ругается на "incorrect syntax neаr 'join' "

по поводу задачи выше рано радовался
здесь дал тестовый пример и он работает
при добавлении еще столбцов в запросе и замены данных в них из других таблиц - опять каша. попробую щас разобраться
...
Рейтинг: 0 / 0
20.10.2009, 16:52
    #36262478
cherrex_Den
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
в group by должны быть перечисленны все поля, которые в select`е, кроме тех на которые накладывается агригатная функция(min,sum, итд)
...
Рейтинг: 0 / 0
20.10.2009, 16:55
    #36262493
cherrex_Den
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
и не только поля но и выражения( convert(varchar(11), t1.starttime,112) )
...
Рейтинг: 0 / 0
20.10.2009, 17:11
    #36262555
1
1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
cherrex_Den
огромнейший респект!!!
все получилось

всем спасибо за внимание и советы.
...
Рейтинг: 0 / 0
21.10.2009, 15:19
    #36264622
1
1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
еще возник вопросец - не знаю как сделать

t1
starttimeobjectm_12009-10-18 0:001252009-10-18 0:002152009-10-18 0:003252009-10-18 1:001102009-10-18 1:002302009-10-18 1:003202009-10-19 0:001402009-10-19 0:002202009-10-19 0:003102009-10-19 1:00152009-10-19 1:002352009-10-19 1:00325
t2
object_idobject_name0ppp1ddd2fff3ttt4ggg5ddd
из тех же таблиц t1 и t2 нахожу теперь максимум за период по каждому объекту за каждый день:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select 
        convert(varchar( 11 ), t1.starttime, 112 ),
        t2.object_name,
        max(t1.m_1)

from t1, t2  

where 
        t1.object =  t2.object_id

group by
            convert(varchar( 11 ), t1.starttime, 112 ),
            t2.object_name

получил
starttimeobjectm_12009-10-18 ddd252009-10-18 fff302009-10-18 ttt252009-10-19 ddd402009-10-19 fff352009-10-19 ttt25

а как получить еще и время максимумов? что то типа:
starttimetimeobjectm_12009-10-18 0:00ddd252009-10-18 1:00fff302009-10-18 0:00ttt252009-10-19 0:00ddd402009-10-19 1:00fff352009-10-19 1:00ttt25
если просто указать t1.starttime то выводит все значения.
группировать по t1.starttime также не получается.

При использовании having опять же выведет все значения starttime
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select 
        convert(varchar( 11 ), t1.starttime, 112 ),
        t1.starttime,
        t2.object_name,
        t1.m_1

from t1, t2  

where 
        t1.object =  t2.object_id

group by
            convert(varchar( 11 ), t1.starttime, 112 ),
            t2.object_name
having t1.m_1 = max(t1.m_1)
...
Рейтинг: 0 / 0
25.10.2009, 22:44
    #36271476
1
1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
решение нашел для своей задачи двумя запросами.
попытался сделать одним запросом в ASE15 - результат немного не тот получается
проверил в mysql, подобное решение там получилось
вообщем еще раз повторю условия:
t1
time_izmobjizm2009-05-06 22:00:00.0203702009-05-06 22:00:00.0224602009-05-06 22:00:00.0243782009-05-06 22:30:00.0203692009-05-06 22:30:00.0223972009-05-06 22:30:00.0244112009-05-06 23:00:00.0203882009-05-06 23:00:00.0223812009-05-06 23:00:00.0243222009-05-06 23:30:00.0204022009-05-06 23:30:00.0223902009-05-06 23:30:00.0243802009-05-07 00:00:00.0203752009-05-07 00:00:00.0223622009-05-07 00:00:00.0243962009-05-07 00:30:00.0203572009-05-07 00:30:00.0223552009-05-07 00:30:00.0243332009-05-07 01:00:00.0204202009-05-07 01:00:00.0223382009-05-07 01:00:00.0244072009-05-07 01:30:00.0203412009-05-07 01:30:00.0223852009-05-07 01:30:00.024376
t2 получаю из t1 запросом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT 
      substring(convert(varchar( 10 ),t1.time_izm, 112 ), 1 , 4 )+'-'+ 
      substring(convert(varchar( 10 ),t1.time_izm, 112 ), 5 , 2 )+'-'+ 
      substring(convert(varchar( 10 ),t1.time_izm, 112 ), 7 , 2 )+' '+  
      convert(varchar( 2 ),t1.time_izm, 108 ) as date_izm,
      obj, 
      sum(izm) s
FROM  t1
GROUP BY 
         substring(convert(varchar( 10 ),t1.time_izm, 112 ), 1 , 4 )+'-'+ 
         substring(convert(varchar( 10 ),t1.time_izm, 112 ), 5 , 2 )+'-'+ 
         substring(convert(varchar( 10 ),t1.time_izm, 112 ), 7 , 2 )+' '+  
         convert(varchar( 2 ),t1.time_izm, 108 ),
         obj
ORDER BY date_izm
t2
date_izmobjs2009-05-06 22:00:00.0207392009-05-06 22:00:00.0228572009-05-06 22:00:00.0247892009-05-06 23:00:00.0207902009-05-06 23:00:00.0227712009-05-06 23:00:00.0247022009-05-07 00:00:00.0207322009-05-07 00:00:00.0227172009-05-07 00:00:00.0247292009-05-07 01:00:00.0207612009-05-07 01:00:00.0227232009-05-07 01:00:00.024783
искомое решение получаю из t2 вторым запросом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT *
FROM t2
WHERE s IN 
           (
            SELECT MAX(s) 
            FROM  t2
            GROUP BY 
                     substring(convert(varchar( 10 ),date_izm, 112 ), 1 , 4 )+'-'+ 
                     substring(convert(varchar( 10 ),date_izm, 112 ), 5 , 2 )+'-'+ 
                     substring(convert(varchar( 10 ),date_izm, 112 ), 7 , 2 ),
                     obj
           )
ORDER BY date_izm, obj
искомое решение:
date_izmobjs2009-05-06 22:00:00.0228572009-05-06 22:00:00.0247892009-05-06 23:00:00.0207902009-05-07 01:00:00.0207612009-05-07 01:00:00.0227232009-05-07 01:00:00.024783

теперь пытаюсь объединить оба запроса в один убрав order by
и получаю только максимумы из t1.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
SELECT *
FROM
    (
     SELECT 
           substring(convert(varchar( 10 ),t1.time_izm, 112 ), 1 , 4 )+'-'+ 
           substring(convert(varchar( 10 ),t1.time_izm, 112 ), 5 , 2 )+'-'+ 
           substring(convert(varchar( 10 ),t1.time_izm, 112 ), 7 , 2 )+' '+  
                     convert(varchar( 2 ),t1.time_izm, 108 ) as date_izm,
           obj, 
           sum(izm) s
     FROM  t1
     GROUP BY 
             substring(convert(varchar( 10 ),t1.time_izm, 112 ), 1 , 4 )+'-'+ 
             substring(convert(varchar( 10 ),t1.time_izm, 112 ), 5 , 2 )+'-'+ 
             substring(convert(varchar( 10 ),t1.time_izm, 112 ), 7 , 2 )+' '+  
                       convert(varchar( 2 ),t1.time_izm, 108 ),
             obj
     )xx
WHERE s IN 
          (
           SELECT MAX(s) 
           FROM	
               (
                SELECT 
                      substring(convert(varchar( 10 ),t1.time_izm, 112 ), 1 , 4 )+'-'+ 
                      substring(convert(varchar( 10 ),t1.time_izm, 112 ), 5 , 2 )+'-'+ 
                      substring(convert(varchar( 10 ),t1.time_izm, 112 ), 7 , 2 )+' '+  
                                convert(varchar( 2 ),t1.time_izm, 108 ) as date_izm,
                      obj, 
                      sum(izm) s
                FROM  t1
                GROUP BY 
                        substring(convert(varchar( 10 ),t1.time_izm, 112 ), 1 , 4 )+'-'+ 
                        substring(convert(varchar( 10 ),t1.time_izm, 112 ), 5 , 2 )+'-'+ 
                        substring(convert(varchar( 10 ),t1.time_izm, 112 ), 7 , 2 )+' '+  
                                  convert(varchar( 2 ),t1.time_izm, 108 ),
                        obj
                )xx

           GROUP BY 
                   substring(convert(varchar( 10 ),date_izm, 112 ), 1 , 4 )+'-'+ 
                   substring(convert(varchar( 10 ),date_izm, 112 ), 5 , 2 )+'-'+ 
                   substring(convert(varchar( 10 ),date_izm, 112 ), 7 , 2 ),
                   obj
          )
получаю:
date_izmobjs'2009-05-06 22'24789'2009-05-06 23'20790'2009-05-06 22'22857

Почему по отдельности верный результат а при объединении запросов только максимальные значения
зы понимаю трудно воспринимать такой вопрос длинный с кучей данных но постарался все описать подробно.
...
Рейтинг: 0 / 0
26.10.2009, 19:16
    #36273346
cherrex_Den
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
1,

да!!!! просто....

я тут половину не разобрал, но заметил следующее:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT *
FROM t2
WHERE s IN 
           (
            SELECT MAX(s) 
            FROM  t2 -- !!!!!!!!!ТУТ t2!!!!!!!!
            GROUP BY 
                     substring(convert(varchar( 10 ),date_izm, 112 ), 1 , 4 )+'-'+ 
                     substring(convert(varchar( 10 ),date_izm, 112 ), 5 , 2 )+'-'+ 
                     substring(convert(varchar( 10 ),date_izm, 112 ), 7 , 2 ),
                     obj
           )
ORDER BY date_izm, obj

а здесь:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
SELECT *
FROM
    (
     SELECT 
           substring(convert(varchar( 10 ),t1.time_izm, 112 ), 1 , 4 )+'-'+ 
           substring(convert(varchar( 10 ),t1.time_izm, 112 ), 5 , 2 )+'-'+ 
           substring(convert(varchar( 10 ),t1.time_izm, 112 ), 7 , 2 )+' '+  
                     convert(varchar( 2 ),t1.time_izm, 108 ) as date_izm,
           obj, 
           sum(izm) s
     FROM  t1
     GROUP BY 
             substring(convert(varchar( 10 ),t1.time_izm, 112 ), 1 , 4 )+'-'+ 
             substring(convert(varchar( 10 ),t1.time_izm, 112 ), 5 , 2 )+'-'+ 
             substring(convert(varchar( 10 ),t1.time_izm, 112 ), 7 , 2 )+' '+  
                       convert(varchar( 2 ),t1.time_izm, 108 ),
             obj
     )xx
WHERE s IN 
          (
           SELECT MAX(s) 
           FROM	
               (
                SELECT 
                      substring(convert(varchar( 10 ),t1.time_izm, 112 ), 1 , 4 )+'-'+ 
                      substring(convert(varchar( 10 ),t1.time_izm, 112 ), 5 , 2 )+'-'+ 
                      substring(convert(varchar( 10 ),t1.time_izm, 112 ), 7 , 2 )+' '+  
                                convert(varchar( 2 ),t1.time_izm, 108 ) as date_izm,
                      obj, 
                      sum(izm) s
                FROM t1 --!!!!!!!А ТУТ t1!!!!!!!!!!
                GROUP BY 
                        substring(convert(varchar( 10 ),t1.time_izm, 112 ), 1 , 4 )+'-'+ 
                        substring(convert(varchar( 10 ),t1.time_izm, 112 ), 5 , 2 )+'-'+ 
                        substring(convert(varchar( 10 ),t1.time_izm, 112 ), 7 , 2 )+' '+  
                                  convert(varchar( 2 ),t1.time_izm, 108 ),
                        obj
                )xx

           GROUP BY 
                   substring(convert(varchar( 10 ),date_izm, 112 ), 1 , 4 )+'-'+ 
                   substring(convert(varchar( 10 ),date_izm, 112 ), 5 , 2 )+'-'+ 
                   substring(convert(varchar( 10 ),date_izm, 112 ), 7 , 2 ),
                   obj
          )


скорее всего надо заменить t1 на такую же муть как и в верху:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
(
     SELECT 
           substring(convert(varchar( 10 ),t1.time_izm, 112 ), 1 , 4 )+'-'+ 
           substring(convert(varchar( 10 ),t1.time_izm, 112 ), 5 , 2 )+'-'+ 
           substring(convert(varchar( 10 ),t1.time_izm, 112 ), 7 , 2 )+' '+  
                     convert(varchar( 2 ),t1.time_izm, 108 ) as date_izm,
           obj, 
           sum(izm) s
     FROM  t1
     GROUP BY 
             substring(convert(varchar( 10 ),t1.time_izm, 112 ), 1 , 4 )+'-'+ 
             substring(convert(varchar( 10 ),t1.time_izm, 112 ), 5 , 2 )+'-'+ 
             substring(convert(varchar( 10 ),t1.time_izm, 112 ), 7 , 2 )+' '+  
                       convert(varchar( 2 ),t1.time_izm, 108 ),
             obj
     )xx
...
Рейтинг: 0 / 0
27.10.2009, 10:29
    #36274152
1
1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Group By по дате
тут ошибки нет
t2 это промежуточная таблица - попытка получить искомый результат двумя запросами.

в идеале нужно сделать тоже самое одним запросом из одной таблицы t1.

любопытно другое почему в mysql запрос работает, а тут такой же запрос выводит другой результат. провобовал в ASE11(двумя запросами, одним не получилось) и в ASE15.

вообщем в голове каша.
задача вроде на вид простая а никак не могу решить
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Group By по дате / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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