Я пытаюсь создать сохраненный вид в MSSQL, который возвращает список предложений, которые были приняты. Проблема, с которой я сталкиваюсь, заключается в том, что если предложение имеет более одной версии, оно возвращает все строки, принятые, хотя это действительно только последняя версия.SQL извлекает отдельные строки по номеру версии
Идентификатор запроса отличается для каждой записи заявки, но номер котировки и имя совпадают. Способ определить, какой идентификатор записи котировки мы хотели бы вернуть, будет предложение с последним номером версии. Только несколько цитат имеют номера версий, и большинство из них уникальны для начала.
Я не знаю, могу ли я сделать это, группируя данные, потому что есть много полей, которые я хотел бы собрать (кроме перечисленных ниже), которые имеют в основном текст внутри них.
Вот пример формата данных, я имею в виду
Quote ID | Quote Number | Quote Name | Version |
i3hfkdkj | 101 | John Smith Residence | 1 |
fheifjdh | 102 | Big Apple Food Service | 1 |
kdjfnf98 | 103 | Starbucks Coffee | 1 |
3498fhkd | 101 | John Smith Residence | 2 |
jfh3bfi3 | 104 | Susan Jane Apartment | 1 |
9834jfkd | 101 | John Smith Residence | 3 |
В идеале я хотел бы запрос только возвращать следующие строки
fheifjdh | 102 | Big Apple Food Service | 1 |
kdjfnf98 | 103 | Starbucks Coffee | 1 |
jfh3bfi3 | 104 | Susan Jane Apartment | 1 |
9834jfkd | 101 | John Smith Residence | 3 |
Большое вам спасибо заранее Ваша помощь
Dan
Вот синтаксис для моего текущего ск который работает правильно, за исключением перечисленных выше.
SELECT
dbo.Quote_Main.quote_readable_id,
dbo.Quote_Main.quote_name,
dbo.Quote_Main.account_name,
dbo.Quote_Main.contact_name,
dbo.Quote_Main.quote_status,
dbo.Quote_Main.delivered_date,
dbo.Quote_Customers.first_name,
dbo.Quote_Customers.last_name,
dbo.Quote_Customers.customer_source,
dbo.Quote_Main.idCRM_opportunity,
dbo.Quote_Main.idQuote_Main,
dbo.Quote_Items.item_notes_html AS QuoteScope,
dbo.Quote_Items.item_notes,
dbo.Quote_Main.version
FROM
dbo.Quote_Items
LEFT JOIN dbo.Quote_Main ON dbo.Quote_Items.idQuote_Main = dbo.Quote_Main.idQuote_Main
LEFT JOIN dbo.Quote_Customers ON dbo.Quote_Main.idQuote_Main = dbo.Quote_Customers.idQuote_Main
WHERE
dbo.Quote_Items.long_description = 'Proposal Scope' AND
dbo.Quote_Main.quote_status = 'Won' AND
dbo.Quote_Customers.usage_type = 'Quote To'
Посмотрите на предложение GROUP BY и 'MIN()'. –
Какое программное обеспечение SQL? – Blorgbeard
Microsoft SQL Server. Я также добавил дополнительную информацию: –