Сумма SQL Server больше указанной даты

У меня есть таблица, которая называется сотрудниками:

CREATE TABLE Employees ( Id INT NOT NULL PRIMARY KEY IDENTITY(1,1), FullName NOT NULL NVARCHAR(100) ) 

У меня есть другая таблица под названием Sales

 CREATE TABLE SALES ( Id INT NOT NULL PRIMARY KEY IDENTITY(1,1), CustomerId INT NOT NULL FOREGIN KEY REFERENCES SOMETABLE(id), AMOUNT DECIMAL(15,4) NOT NULL, EmployeeId INT NOT NULL FOREGIN KEY REFERENCES Employees(Id), SaleDate DATETIME2 NOT NULL ) 

И еще одна таблица под названием «Звонки»

 CREATE TABLE Calls ( Id INT NOT NULL PRIMARY KEY IDENTITY(1,1), Date DATETIME2 NOT NULL, EmployeeId INT NOT NULL FOREGIN KEY REFERENCES Employees(Id) ) 

Мне нужно запустить запрос, который расскажет мне о последней дате, когда сотрудник продал что-то, и как могут называть их сумасшедшими с момента продажи.

То, что я пробовал, – это

 SELECT LAST_DATE_SOLD = MAX(Sales.Date) , Employees.FullName , Count(Calls.*) FROM Employees LEFT OUTER JOIN SALES ON Sales.EmployeeId = Employees.Id LEFT OUTER JOIN Calls On Calls.EmployeeId = Employees.Id GROUP BY Employees.FullName 

Я не получаю правильные значения, если кто-то может помочь с этим, это было бы здорово.

Есть много способов обмануть этого кота. Вот один из них. Обратите внимание, что это соединение с Calls, где дата больше, чем последняя дата продажи, поэтому она возвращает только эти вызовы.

 with SortedResults as ( select * , ROW_NUMBER() over(partition by e.EmployeeID order by s.SalesDate desc) as RowNum from Sales s join Employee e on e.EmployeedID = s.Id ) select s.SalesDate , s.FullName , count(*) from SortedResults s join Calls c on c.EmployeedId = s.EmployeeId and c.Date > s.SaleDate where s.RowNum = 1 group by s.SalesDate, s.FullName 

Я думаю, что Max(Sales.Date) . Попробуй это

 SELECT LAST_DATE_SOLD = MAX(SaleDate) , Employees.FullName , Count(Calls.*) FROM Employees LEFT OUTER JOIN SALES ON Sales.EmployeeId = Employees.Id LEFT OUTER JOIN Calls On Calls.EmployeeId = Employees.Id GROUP BY Employees.FullName 

Вы можете попробовать следующее:

 WITH qry1 AS ( SELECT EmployeeId , MAX(SaleDate) LatestSaleDate FROM dbo.SALES GROUP BY EmployeeId ) SELECT qry1.EmployeeId , LatestSaleDate , SUM(CASE WHEN c.date > LatestSaleDate THEN 1 ELSE 0 END) NumberOfCalls FROM qry1 LEFT JOIN Calls c ON qry1.EmployeeId = c.EmployeeId GROUP BY qry1.EmployeeId, LatestSaleDate 
 SELECT e.fullname, c.date, COUNT(c.id) FROM calls c INNER JOIN employees e ON c.employee_id = e.employee_id WHERE date >= (SELECT MAX(saledate) FROM sales WHERE employee_id = c.employee_id ) GROUP BY e.fullname, c.date 
  • Возвращает выбранные строки в соответствии с максимальным значением без дублирования с использованием MS SQL
  • Вывод SQL GROUP BY CASE для ошибки aviod
  • SQL выбирает из таблицы, где столбец содержит определенные строки
  • Сгруппированная агрегация строк / LISTAGG для SQL Server
  • Интеллектуальный кодекс старения
  • Можно ли агрегировать данные базы данных на основе нескольких столбцов?
  • Как получить счет двухсторонних комбинаций из двух столбцов?
  • получить сумму количества в неделю со вторника по понедельник
  • Преобразование типа данных NVARCHAR в INT в SQL Server 2008
  • Как объединить либо уникальное строковое значение, либо NULL
  • Выполнение ISNULL в SQL Server
  • Interesting Posts

    сохранение книги с использованием SQL Server

    Не удалось подключиться к ODBC-соединению SQL Server

    Получать различные значения из каждой таблицы и каждого столбца с помощью SQL Server

    Как получить определенное количество строк при использовании метода Include в инфраструктуре сущности?

    Условные разделители SSIS с несколькими True

    выходной параметр SQL Server 2005

    Функции LAG и NULLS

    Получение первичного ключа для вставленного значения

    Сохранение нулей при преобразовании varchar в float в SQL Server

    Автоматическая вставка данных из Access в Sql-сервер

    Как добавить номера групп в последовательные записи в SQL Server 2012 при изменении значения столбца?

    Получить значения для ссылки, где существует ключ

    Должен ли я избегать отправки обновления в db каждый раз, когда поле вводит данные

    Скопируйте текст из строки в GridEX

    Возможно ли, чтобы SQL Server конвертировал сортировку в UTF-8 / UTF-16

    Давайте будем гением компьютера.