Запрос на получение записей за последние 30 дней для разных столбцов - PullRequest
0 голосов
/ 03 мая 2019

Предположим, у вас есть база данных сервера sql со следующими записями

CarMaker    CarModel    CarSalesPrice       CarSalesDate
---------------------------------------------------------
Maker A     A Model X V6    20000           12-23-2018
Maker B     B Model Z V6    30000           02-09-2019
Maker C     B Model Z V6    40000           04-08-2019

Я пытаюсь написать запрос, чтобы сгенерировать общую продажную цену за carMaker и модель за последние 30 дней, и я застрял

SELECT
     CarModel, CarMaker, Count(totalSalesPrice)
FROM
     dbo.Cars

WHERE
    carSalesDate >= DATEADD(day,-30, getdate()) 

Этот код не работает, и я могу думать только о выполнении задачи.

Ответы [ 2 ]

1 голос
/ 03 мая 2019

Вам также нужно агрегировать по модели автомобиля и производителю, используя GROUP BY:

SELECT
    CarModel,
    CarMaker,
    SUM(totalSalesPrice) AS totalSales
FROM dbo.Cars
WHERE
    carSalesDate >= DATEADD(day, -30, GETDATE())
GROUP BY
    CarModel,
    CarMaker;
0 голосов
/ 03 мая 2019

Вам нужна агрегация и sum().Я также рекомендовал бы исправить сравнение даты:

SELECT CarModel, CarMaker, SUM(totalSalesPrice)
FROM dbo.Cars
WHERE carSalesDate >= DATEADD(day,- 30, CONVERT(DATE, getdate()));

GETDATE() имеет компонент времени, который вводит в заблуждение.Я не уверен, если вы хотите -30 дней или -29 дней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...