2009-12-04 3 views
0

Необходимо выбрать последний идентификатор счета-фактуры и соответствующие поля. Весь sql содержит несколько внутренних объединений.SQL - выберите поля Max ID

SELECT max(InvoiceID), 
     InvoiceEndDate 
    FROM Invoices 
WHERE TransactionOrderItemID = '000831' 

Прямо сейчас, я получаю InvoiceID, и вам нужно снова получить InvoiceEndDate.

Есть ли эффективный способ сделать это?

ответ

4
SELECT InvoiceID, InvoiceEndDate 
FROM Invoices 
WHERE TransactionOrderItemID='000831' 
ORDER BY InvoiceID DESC 
LIMIT 1 
+0

Рад, что видел. Если это работает, это намного проще, чем то, как я собирался предложить ... – Kendrick

+2

OP говорит MySQL, поэтому LIMIT 1 понадобится после заказа вместо TOP 1 перед списком выбора. –

+0

@martin: good catch =) –

0
SELECT InvoiceID, InvoiceEndDate 
FROM Invoices INV 
WHERE TransactionOrderItemID='000831' 
    AND INV.InvoiceID = (SELECT MAX(SUB.InvoiceID) 
    FROM Invoices SUB WHERE SUB.TransactionOrderItemID='000831'); 
Смежные вопросы