MySQL folosi sumă și maximă pentru a găsi cea mai mare factura plătită

voturi
-1

am încercat să dau seama cum să obțineți rezultatul MAX a unei sume de valori dintr - un tabel pentru a afișa valoarea cea mai mare plătită de o confirmare de primire. De asemenea , ar trebui să folosească subselecție, dar im obtinerea confuz. Până în prezent , această interogare mi devine tot ce am nevoie afișat cu excepția valorii max. Aceasta este masa (factura + OD) trebuie să fie utilizate Aceasta este ceea ce eu sunt în prezent obtinerea Aceasta este ceea ce ar trebui să fie obținerea

unde pot adăuga MAX () (din suma)?

SELECT invoicenumber invoice
     , invoicedate date
     , SUM(orderqty*ordersell) AS 'Invoice Total' 
  FROM invoice 
  JOIN orderdetail 
    ON invoice.invoiceid = orderdetail.invoiceid 
 GROUP 
    BY invoice ;
Întrebat 07/11/2018 la 23:43
sursa de către utilizator
În alte limbi...                            


3 răspunsuri

voturi
0

Nu știu dacă acest lucru este aproape de ceea ce căutați, dar cred că acest lucru ar funcționa (dacă am înțeles corect ceea ce încearcă să realizeze).

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;
Publicat 08/11/2018 la 00:14
sursa de către utilizator

voturi
0

Puteți încerca acest lucru (adăugând la răspunsul anterior):

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;

Nu poate fi prea eficient, dar returnează numai rezultatul cel mai mare.

Publicat 08/11/2018 la 00:08
sursa de către utilizator

voturi
0

Dacă utilizați SUM sau MAX în SELECT, trebuie să GROUP BY alte coloane:

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;
Publicat 07/11/2018 la 23:48
sursa de către utilizator

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