Замена параметра в SQL для внешнего ключа - PullRequest
0 голосов
/ 10 мая 2018
SELECT 
    StaffID, 
    SUM(Treatment.TreatmentPrice) AS TotalStaffRevenue, 
    SUM(Treatment.TreatmentPrice) * ? AS Commission
FROM 
    Treatment
INNER JOIN 
    Appointment ON Appointment.TreatmentID = Treatment.TreatmentID
WHERE
    AppointmentDate >= '2018/05/11' 
    AND AppointmentDate <= '2018/05/12'
GROUP BY 
    staffid WITH ROLLUP

CREATE TABLE Staff (
StaffID int IDENTITY NOT NULL,
Forename varchar(20) NOT NULL,
Surname varchar(20) NOT NULL,
MobileNumber varchar(11) NOT NULL,
EmailAddress varchar(20) NULL,
PostCode varchar(8) NULL,
HouseNumber varchar(4) NULL,
Commission decimal(6,2) NOT NULL,
PRIMARY KEY(StaffID)
);

GO

CREATE TABLE Treatment (
TreatmentID int identity NOT NULL,
TreatmentName varchar(20)  NOT NULL,
TreatmentPrice money NOT NULL,
CategoryID int NOT NULL,
TreatmentDescription varchar(40) NOT NULL,
PRIMARY KEY(TreatmentID, CategoryID)
);

GO

CREATE TABLE Appointment (
AppointmentID int IDENTITY NOT NULL,
StaffID int NOT NULL,
TreatmentID int NOT NULL,
CustomerID int NOT NULL,
AppointmentDate date NOT NULL,
AppointmentTime time(0) NOT NULL,
PRIMARY KEY (AppointmentID, StaffID, CustomerID, TreatmentID)
);

Мне нужна возможность умножения суммы цены лечения на персонал. Комиссия. Я пробовал ВНУТРЕННЕЕ СОЕДИНЕНИЕ с Staff, но это все еще не работает также, как бы я реализовал это во внешнем интерфейсе (c #), если бы я использовал для каждого цикла, это тогда заполнило бы сетку данных.

1 Ответ

0 голосов
/ 11 мая 2018

Как вы получили Staff.Commission без какого-либо соединения с таблицей Staff в вашем запросе?Попробуйте

SELECT 
    Staff.StaffID, 
    SUM(Treatment.TreatmentPrice) AS TotalStaffRevenue, 
    SUM(Treatment.TreatmentPrice)*Commission AS Commission
FROM 
    Treatment
INNER JOIN 
    Appointment ON Appointment.TreatmentID = Treatment.TreatmentID
    inner join Staff on Appointment.StaffID=Staff.StaffID
WHERE
    AppointmentDate >= '2018/05/11' 
    AND AppointmentDate <= '2018/05/12'
GROUP BY 
    Staff.StaffID,Commission WITH ROLLUP
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...