Application Express PL SQL Group по функциям

Я пытаюсь использовать группу, чтобы получить отчет, в котором перечислены общие продажи за день. SO желаемый результат будет выглядеть так:

  • Понедельник, 13 января 2014 г. $550

  • Вторник, 14 января 2014 г. $600

    Вторник, 14 января 2014 г. $600

и т.п.

Когда я использую следующий код:

SELECT
  tix.user_id,
  tix.timestamp,
  tix.event_id,
  tixp.Price AS "Total Sales"
FROM LS_tickets tix
LEFT OUTER JOIN LS_ticket_prices tixP
  ON tixP.event_ID = tix.event_ID
WHERE
  tix.event_id = 12181

Запрос возвращает таблицу, но не предоставляет ИТОГО по дням. Это обеспечивает каждую индивидуальную продажу. Поэтому я пытаюсь изменить его следующим образом:

SELECT
  tix.user_id,
  tix.timestamp,
  tix.event_id,
  sum(tixp.Price AS "Total Sales")
FROM LS_tickets tix
LEFT OUTER JOIN LS_ticket_prices tixP
  ON tixP.event_ID = tix.event_ID
WHERE
  tix.event_id = 12181
GROUP BY tix.timestamp

Я получаю следующую ошибку:

Запрос не может быть проанализирован, проверьте синтаксис вашего запроса. (ORA-00936: отсутствует выражение)


person Halifernus    schedule 26.09.2014    source источник


Ответы (1)


Если вы хотите получить итог по дням, вам нужно сгруппировать по дням. Предполагая, что timestamp является типом данных даты:

SELECT trunc(tix.timestamp) as thedate,
       sum(tixp.Price) AS "Total Sales"
FROM LS_tickets tix LEFT OUTER JOIN
     LS_ticket_prices tixP
     ON tixP.event_ID = tix.event_ID
WHERE tix.event_id = 12181
GROUP BY trunc(tix.timestamp)
ORDER BY 1;

Вы можете получить нужный формат даты, используя to_char(). Вам может подойти этот формат:

SELECT to_char(tix.timestamp, 'DY MM DD, YYYY') as thedate,
       sum(tixp.Price) AS "Total Sales"
FROM LS_tickets tix LEFT OUTER JOIN
     LS_ticket_prices tixP
     ON tixP.event_ID = tix.event_ID
WHERE tix.event_id = 12181
GROUP BY to_char(tix.timestamp, 'DY MM DD, YYYY') 
ORDER BY 1;
person Gordon Linoff    schedule 26.09.2014
comment
Это помогло, но я получаю только один столбец со значением в долларах, без столбца даты. - person Halifernus; 26.09.2014
comment
На самом деле проблема с одним столбцом могла быть проблемой кэширования. Однако я получаю больше общих продаж, чем должен. - person Halifernus; 26.09.2014
comment
Я разобрался со своим соединением и решил все вопросы. Большое спасибо за ваше руководство. - person Halifernus; 26.09.2014