Помощь ПО порядку В предложении

#mysql #sql

#mysql #sql

Вопрос:

Нужна небольшая помощь, я хотел получить данные из определенной таблицы, в которой отображаются записи с уникальным номером счета и датой, когда был выставлен счет. однако он не принимает ПОРЯДОК сортировки, который мне был нужен. Это заставляет меня выполнять предложение GROUP BY, которое отображает одну и ту же дату для всех его результатов. как мне это сделать?

 select tmatter as 'Project',
tinvoice as 'Invoice #', 
tbilldt as 'Invoice Date', 
sum(tworkdol) as 'Transfer', 
sum(tbilldol) as 'Billed'

from timecard where tmatter in 
(select mmatter from matter where mclient in ('00267051'))
and
tbatch in (select bbatch from batch where bfindt between '03/02/2019' and '04/01/2019')
order by tbilldt

Project       Invoice # Invoice Date    Transfer    Billed
test proj1  6584923 3/25/2019    11,623.75   9,208.75 
test proj1  6589826 4/12/2019    4,117.50    3,417.50 
test proj2  6584924 3/25/2019    9,923.75    9,923.75 
test proj3  6582567 3/15/2019    20,099.75   20,099.75 
test proj5  6589345 3/20/2019    600.00      600.00
  

Комментарии:

1. Какая версия MySQL и можете ли вы предоставить какую-нибудь примерную схему?

2. Вероятно, это ошибка в более старых версиях MySQL, до 5.7.5.

3. И это запрос, созданный какой-то другой программой? Может ли matter или batch возвращать несколько результатов? JOIN s или EXIST , вероятно, было бы здесь намного лучше.

4. Вы объединяете последние два столбца с SUM() , оставляя первые три неагрегированными. В этом случае вам НУЖНО использовать GROUP BY со всеми неагрегированными столбцами. Как бы то ни было, ваш запрос не имеет смысла.

5. Вы присвоили псевдоним tbilldt как Invoice Date . tbilldt больше не существует к моменту выполнения вашего запроса ORDER BY .