Witam,
Mam mały problem z wygenerowaniem raportu z bazy danych (przykład w załączeniu).
Dane są pobierane z 3 różnych tabel.
Pola 'dbo.InvoiceMismatchQuestions.Status' i 'dbo.InvoiceHistory.NewStatus' mają różne wartości dla tego samego pola 'dbo.Invoices.InvoiceNo' i dlatego w raporcie jest tyle wierszy ile roznych kombinacji tych pól.
Ja potrzebuje wyświetlić dane tylko dla ostatniego numeru sekwencyjnego dla pola ‘New Status’ (dla tego o największej wartości numerycznej) i dla najstarszej daty tak żeby w raporcie byla tylko faktyczna liczba bledow faktury – w moim przypadku powinny to byc tylko 2 wiersze (te oznaczone na zielono).
Próbowałem uzyc funkcji WHERE ale za kazdym razem wyrzuca mi blad skladni.
Ponizsze zapytanie generuje mi raport jak w zalaczonym jpg, a ja potrzebuje kod, ktory wygeneruje tylko te 2 linie oznaczone na zielono
SELECT dbo.Invoices.InvoiceNo, dbo.Invoices.DocType, dbo.Invoices.CreatedBy, dbo.Invoices.Currency, dbo.Invoices.SupplierInvoiceDate, dbo.Invoices.SupplierInvoiceNo, dbo.Invoices.TotalNetValue, dbo.Invoices.InvoiceStatus, dbo.Invoices.InvoiceSupplierCode, dbo.Invoices.InvoiceSupplierTitle, dbo.InvoiceMismatchQuestions.Status, dbo.InvoiceMismatchQuestions.Description, dbo.InvoiceMismatchQuestions.QuestionText, dbo.InvoiceMismatchQuestions.QuestionDate, dbo.InvoiceHistory.NewStatus
FROM (dbo.Invoices LEFT JOIN dbo.InvoiceMismatchQuestions ON dbo.Invoices.InvoiceGUID = dbo.InvoiceMismatchQuestions.InvoiceGUID) LEFT JOIN dbo.InvoiceHistory ON dbo.InvoiceMismatchQuestions.InvoiceGUID = dbo.InvoiceHistory.InvoiceGUID
WHERE dbo.Invoices.InvoiceNo = 1019833
ORDER BY InvoiceNo,NewStatus
Dziękuję bardzo za pomoc.
Mariusz