【问题标题】:Replacing a paramater in SQL for a foreign key将 SQL 中的参数替换为外键
【发布时间】: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 的错误

标签: c# sql


【解决方案1】:

您是如何在查询中没有加入 Staff 表的情况下获得 Staff.Commission 的? 试试看

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多