【发布时间】:2018-05-10 19:37:55
【问题描述】:
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)
);
我希望能够将 TreatmentPrice 的总和乘以 Staff.Commission。我已经尝试过使用 Staff 进行 INNER JOINing,但它仍然无法正常工作,我将如何在前端 (c#) 中实现它,我是否会为每个循环使用一个,然后这将填充一个数据网格。
【问题讨论】:
-
如果 Commission 在 Staff 表中,那么听起来
INNER JOIN很可能是这里的方法。你能用这 3 个表的 Create Table 语句更新帖子吗? -
我已经更新了
-
员工在哪里加入?
-
我不知道该怎么做才不会收到 Staff.Commission 的错误