Мне нужно получить данные для отчета из базы данных SQL Server 2008 R2, в которой перечислены все продукты, созданные для данного дня. Записи могут иметь несколько записей в один и тот же день, но я хочу только посчитать элементы один раз.
Пример записи:
SerialNumber VARCHAR(20)
OrderNumber VARCHAR(50)
Price DECIMAL(7,2)
TestDateTime DATETIME
Мой запрос на просмотр может выглядеть примерно так:
SELECT DISTINCT OrderNumber, SerialNumber, Price, TestDateTime
FROM TestTable
ORDER BY OrderNumber, SerialNumber
... и тогда запрос отчета будет выглядеть примерно так:
SELECT OrderNumber, SerialNumber, Price
FROM TestView
WHERE CONVERT(date, getdate()) = CONVERT(date, TestDateTime)
... за исключением того, что я получаю отдельную (дублирующую) запись для каждой даты и времени. Мне нужно поле даты и времени, так как я буду выбирать записи из представления на основе даты, но я также хочу получить точную сумму полей цены для данного OrderNumber, поэтому я хочу видеть каждый SerialNumber только один раз.
Есть идеи?
Следующий вопрос - как получить общую цену для всех строк с одинаковым OrderNumber? Может быть, это должен быть отдельный вопрос ...