MySQL использовать сумму и максимум, чтобы найти наиболее высокооплачиваемой фактуру

голоса
-1

Я пытаюсь выяснить , как получить MAX результат SUM значений из таблицы, чтобы отобразить наиболее высокооплачиваемой сумму чека. Я также должен использовать подзапрос, но им путаться. До сих пор этот вопрос становится мне все , что нужно для отображения максимального значения за исключением. Это таблица (счет - фактура + OD) необходимо использовать Это то , что я в настоящее время получаю Это то , что я должен получать

где я могу добавить MAX () (если сумма)?

SELECT invoicenumber invoice
     , invoicedate date
     , SUM(orderqty*ordersell) AS 'Invoice Total' 
  FROM invoice 
  JOIN orderdetail 
    ON invoice.invoiceid = orderdetail.invoiceid 
 GROUP 
    BY invoice ;
Задан 07/11/2018 в 23:43
источник пользователем
На других языках...                            


3 ответов

голоса
0

Я не знаю, если это близко от того, что искал, но я думаю, что это будет работать (если я правильно понял, что вы пытаетесь достичь).

SELECT inv.invoicenumber,
       inv.invoice, 
       inv.invoicedate AS 'Date',
       MAX((SELECT ord.orderqty+ord.ordersell FROM DUAL)) AS 'Invoice Total' 
  FROM invoice inv
  JOIN orderdetail ord
    ON inv.invoice.invoiceid = ord.orderdetail.invoiceid 
 GROUP BY inv.invoice, 
          inv.invoice, 
          inv.invoicedate;
Ответил 08/11/2018 в 00:14
источник пользователем

голоса
0

Вы можете попробовать это (добавление к предыдущему ответу):

SELECT invoicenumber AS invoice
 , invoicedate AS date
 , SUM(orderqty*ordersell) AS 'Invoice Total' 
FROM invoice 
JOIN orderdetail ON invoice.invoiceid = orderdetail.invoiceid 
GROUP BY invoicenumber,invoicedate ORDER BY `Invoice Total` DESC LIMIT 1;

Может быть не слишком эффективным, но возвращает только самый высокий результат.

Ответил 08/11/2018 в 00:08
источник пользователем

голоса
0

Если вы используете SUM или MAX в SELECT, вы должны GROUP BY других столбцов:

SELECT invoicenumber AS invoice
 , invoicedate AS date
 , SUM(orderqty*ordersell) AS 'Invoice Total' 
FROM invoice 
JOIN orderdetail ON invoice.invoiceid = orderdetail.invoiceid 
GROUP BY invoicenumber,invoicedate;
Ответил 07/11/2018 в 23:48
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more