Хранимая процедура умножения значений - PullRequest
0 голосов
/ 24 сентября 2018

У меня в таблице 3 сотрудника.Я использую эту хранимую процедуру, чтобы попытаться просмотреть и просмотреть данные для каждого отдельного сотрудника.Однако он возвращает данные для первого сотрудника трижды и ничего не возвращает для двух других сотрудников.Если я удаляю одного сотрудника из моей таблицы, чтобы у меня было 2 сотрудника, он возвращает данные для первого сотрудника 2 раза.

USE [Payroll]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[EmployeeProfitability] 
    @PayrollDate DATETIME
AS
BEGIN
    SELECT  
        0 AS Id, FirstName, LastName
    FROM
        dbo.Employees e
    LEFT JOIN 
        (SELECT 
             EmployeeId
         FROM 
             dbo.EmployeeJobs ej
         WHERE 
             PayrollDate = @PayrollDate
         GROUP BY 
             ej.EmployeeId) AS Volume ON e.EmployeeId = Volume.EmployeeId
END

Мне возвращают

Bob Saget
Bob Saget
Bob Saget

Я пытаюсь получить

Bob Saget
Ron Swanson
Dwayne Johnson

1 Ответ

0 голосов
/ 24 сентября 2018

Причина, по которой вы получаете дублирующую строку в вашем выборе, вызванную Id, FirstName, LastName.когда вы пытаетесь соединиться влево с таблицей, в которой есть предложение group by, вам нужно позаботиться о первом утверждении вашего оператора select.

...