powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / переменное количество данных одним запросом
11 сообщений из 11, страница 1 из 1
переменное количество данных одним запросом
    #39759752
Квази
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли вернуть select count(*) по дням, начиная с понедельника по текущий.
...
Рейтинг: 0 / 0
переменное количество данных одним запросом
    #39759753
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разрешаю
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
переменное количество данных одним запросом
    #39759791
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Квази,

можно. В помощь group by, extract, weekday. К сожалению, примера нет. Нужны Ваши данные для примера. Придумывать на своих не хочется.
...
Рейтинг: 0 / 0
переменное количество данных одним запросом
    #39759798
Квази
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI,

пример простой
данные за определенную дату извлекаются запросом типа
Код: sql
1.
select count(*) from *** where DateField='дата'


если сегодня среда, то будет что то типа

Код: sql
1.
2.
3.
select count(*), 
(count(*) from *** where DateField='вторник')
from *** where DateField='понедельник'
...
Рейтинг: 0 / 0
переменное количество данных одним запросом
    #39759810
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Квази,

запрос бессмысленный, работать не будет, т.к. внутренний запрос вернет только один столбец - count, да и where у обоих запросов взаимоисключаемые.

см. extract и group by. только
select extract(day from DateField), count(*)
from table
group by 1

вернет количество для всех понедельников. Может так и надо, х.з.
...
Рейтинг: 0 / 0
переменное количество данных одним запросом
    #39759831
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Квази,

что-то типа такого

Код: sql
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.
WITH T
AS (SELECT
        SERVICE.CODE_SERVICE,
        CASE
          WHEN EXTRACT(WEEKDAY FROM CURRENT_TIMESTAMP) = 0
          THEN 7
          ELSE EXTRACT(WEEKDAY FROM CURRENT_TIMESTAMP)
        END AS CURR_D_NUMBER,
        CASE
          WHEN EXTRACT(WEEKDAY FROM SERVICE.BYDATE) = 0
          THEN 7
          ELSE EXTRACT(WEEKDAY FROM SERVICE.BYDATE)
        END AS D_NUMBER
    FROM
        SERVICE
    WHERE SERVICE.BYDATE BETWEEN DATEADD(-1 WEEK TO CURRENT_TIMESTAMP) AND CURRENT_TIMESTAMP)
SELECT
    COUNT(T.CODE_SERVICE) AS CNT,
    COUNT(
    CASE
      WHEN (CURR_D_NUMBER >= D_NUMBER) AND D_NUMBER = 1
      THEN T.CODE_SERVICE
    END) AS CNT_MON,
    COUNT(
    CASE
      WHEN (CURR_D_NUMBER >= D_NUMBER) AND D_NUMBER = 2
      THEN T.CODE_SERVICE
    END) AS CNT_TUE,
    COUNT(
    CASE
      WHEN (CURR_D_NUMBER >= D_NUMBER) AND D_NUMBER = 3
      THEN T.CODE_SERVICE
    END) AS CNT_WEN,
    COUNT(
    CASE
      WHEN (CURR_D_NUMBER >= D_NUMBER) AND D_NUMBER = 4
      THEN T.CODE_SERVICE
    END) AS CNT_THU,
    COUNT(
    CASE
      WHEN (CURR_D_NUMBER >= D_NUMBER) AND D_NUMBER = 5
      THEN T.CODE_SERVICE
    END) AS CNT_FRI,
    COUNT(
    CASE
      WHEN (CURR_D_NUMBER >= D_NUMBER) AND D_NUMBER = 6
      THEN T.CODE_SERVICE
    END) AS CNT_SAT,
    COUNT(
    CASE
      WHEN (CURR_D_NUMBER >= D_NUMBER) AND D_NUMBER = 7
      THEN T.CODE_SERVICE
    END) AS CNT_SUN
FROM
    T 
...
Рейтинг: 0 / 0
переменное количество данных одним запросом
    #39759839
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Квази,

Код: sql
1.
2.
3.
4.
select WeekDay(a.DateField), count(*)
from Table a
where a.DateField between DateAdd((1-extract(WeekDay from Currentdate)) to CurrentDate) and CurrentDate
group by 1



Воскресенье надо отдельно обработать. Проклятые американцы, начинают неделю с воскресенья.
...
Рейтинг: 0 / 0
переменное количество данных одним запросом
    #39759877
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Производственный Календарь.
...
Рейтинг: 0 / 0
переменное количество данных одним запросом
    #39760192
Квази
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIКвази,

Код: sql
1.
2.
3.
4.
select WeekDay(a.DateField), count(*)
from Table a
where a.DateField between DateAdd((1-extract(WeekDay from Currentdate)) to CurrentDate) and CurrentDate
group by 1



Воскресенье надо отдельно обработать. Проклятые американцы, начинают неделю с воскресенья.
Спасибо, то, что нужно. В воскресенье работать грех, поэтому обрабатывать его не будем.
...
Рейтинг: 0 / 0
переменное количество данных одним запросом
    #39760193
Квази
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvКвази,

запрос бессмысленный, работать не будет, т.к. внутренний запрос вернет только один столбец - count
да в принципе не страшно, главное получить данные за неделю одним запросом.
...
Рейтинг: 0 / 0
переменное количество данных одним запросом
    #39760201
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КвазиВ воскресенье работать грех, поэтому обрабатывать его не будем.

А кому-то и в субботу грех. А мне бы и в пятницу ещё погрешить.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / переменное количество данных одним запросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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