powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / загнать при выблорке значения полей SET в столбцы как?
4 сообщений из 4, страница 1 из 1
загнать при выблорке значения полей SET в столбцы как?
    #35602037
cucumberdfhgdsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в БД имеется таблица с логом транзакций:

id timestamp status amount1 2008-10-16 10:18:12 approved 50.252 2008-10-16 21:16:30 decline 10.003 2008-10-17 22:50:00 approved 20.003 2008-10-17 23:17:18 decline 10.004 2008-10-17 23:17:18 approved 100.00


мне требуется вывести таблицу вида
date count(decline) count(approve) sum(approve)2008-10-16 1150.252008-10-17 1 23120

помогите составить запрос:
SELECT DATE(timestamp) AS day, COUNT(decline), COUNT(approve), SUM(approve) .... from table WHERE id>1 AND id<4 ... GROUP BY day, status
...
Рейтинг: 0 / 0
загнать при выблорке значения полей SET в столбцы как?
    #35607029
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приколись - получилось...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT DISTINCT
      cast(a.timestamp as date) as 'day'
      ,(select count(*) from [Table_605954]
        where status='decline' and cast(timestamp as date)=cast(a.timestamp as date)) as 'cnt_decline'
      ,(select count(*) from [Table_605954]
        where status='approved' and cast(timestamp as date)=cast(a.timestamp as date)) as 'cnt_approved'
      ,(select sum(amount) from [Table_605954]
        where status='approved' and cast(timestamp as date)=cast(a.timestamp as date)) as 'sum_approved'
  FROM [Table_605954] a
  where a.id>= 1  and a.id<= 4 
Проверял, правда, на SQL2008 express...
...
Рейтинг: 0 / 0
загнать при выблорке значения полей SET в столбцы как?
    #35608100
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
case - вот сила

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT
      cast([timestamp] as date) as 'day',
      count(case when status='decline' then  1  end) count_decline,
      count(case when status='approved' then  1  end) count_approved,
      sum(case when status='approved' then amount else  0  end) sum_approved
FROM Table_605954
where id>= 1  and id<= 4 
group by cast([timestamp] as date)
...
Рейтинг: 0 / 0
загнать при выблорке значения полей SET в столбцы как?
    #35609073
cucumberdfhgdsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, о боги SQLа!!!

с минимальной правкой оно заработало в мускуле :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT
      DATE(added) as day,
      count(case when status='decline' then  1  end) AS count_decline,
      count(case when status='approved' then  1  end) AS count_approved,
      sum(case when status='approved' then amount else  0  end) AS sum_approved
FROM orders
where id>= 1  and id<= 4 
group by day
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / загнать при выблорке значения полей SET в столбцы как?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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