MySQL多列求和脚本
对不起,我是mysql的乞丐,我需要尽快得到帮助。 所以,我有两张桌子 程序指南:MySQL多列求和脚本,mysql,sql,database,mysql-workbench,sql-scripts,Mysql,Sql,Database,Mysql Workbench,Sql Scripts,对不起,我是mysql的乞丐,我需要尽快得到帮助。 所以,我有两张桌子 程序指南: idProcedure INT(PRIMARY KEY) ProcedureName VARCHAR(45) ProcedureCost DOUBLE ProcedureTax DOUBLE TotalCost DOUBLE AS ProcedureTax+ProcedureCost 病人药膏: idAppointment INT(PRIMARY KEY) idProcedure1 INT idProcedu
idProcedure INT(PRIMARY KEY)
ProcedureName VARCHAR(45)
ProcedureCost DOUBLE
ProcedureTax DOUBLE
TotalCost DOUBLE AS ProcedureTax+ProcedureCost
病人药膏:
idAppointment INT(PRIMARY KEY)
idProcedure1 INT
idProcedure2 INT
idProcedure3 INT
idProcedure4 INT
idProcedure5 INT
TotalCost DOUBLE
idAppointment id1 id2 id3 id4 id5 TotalCost
1 1 3 NULL NULL NULL 52
2 2 4 5 NULL NULL 165
3 4 NULL NULL NULL NULL 10
4 1 2 3 4 5 217
因此,问题如下:
每个患者预约最多可以有5个医疗程序(例如,如果只有3个,则前3个idProcedcedure将具有程序id,其余将为空)。我曾尝试将PatientAppoint中的5个id作为ProcedureCatalogue中idProcedure的外键,但似乎不起作用(我使用的是最新版本的MySQL Workbench,当我尝试为idProcedure选择列时,ProcedureCatalogue中没有任何列出现)但这不是真正的问题,因为在插入数据时可以使用正确的信息来完成
我需要做的是,我真的不知道如何制作一个脚本,使每个过程的总成本等于总成本的总和
例如,如果您有2个程序(最多可以是5个(来自Patients的idProcedure与来自ProcedureCatalog的idProcedure共同响应))
您将得到类似于:
程序目录:
id ProcedureName ProcedureCost ProcedureTax TotalCost
1 procedure1 20 30 50
2 procedure2 40 60 100
3 procedure3 1 1 2
4 procedure4 5 5 10
5 procedure5 25 30 55
至于药膏:
idAppointment INT(PRIMARY KEY)
idProcedure1 INT
idProcedure2 INT
idProcedure3 INT
idProcedure4 INT
idProcedure5 INT
TotalCost DOUBLE
idAppointment id1 id2 id3 id4 id5 TotalCost
1 1 3 NULL NULL NULL 52
2 2 4 5 NULL NULL 165
3 4 NULL NULL NULL NULL 10
4 1 2 3 4 5 217
因此,请帮助我编写脚本,用于填充PatientPayment中的总成本,我在过去6个小时内一直在尝试,但我没有成功:(.更新PatientPayment pa
左连接过程在pa.idProcedure1=pc1.idProcedure上调用pc1
左连接过程pa.idProcedure上的目录pc2=pc2.idProcedure
左连接过程在pa.idProcedure上调用pc3=pc3.idProcedure
左连接过程在pa.idProcedure4=pc4.idProcedure上调用pc4
左连接过程在pa.idProcedure上调用pc5=pc5.idProcedure
设置pa.TotalCost=合并(pc1.TotalCost,0)
+合并(pc2.TotalCost,0)
+合并(pc3.TotalCost,0)
+合并(pc4.TotalCost,0)
+合并(pc5.TotalCost,0);
如果我想要第六个过程,而钱很少是双倍的,那该怎么办?这就是为什么十进制被发明的原因。@草莓这是一个更大的大学作业的一部分,我正在使用提供给我的数据类型。好吧,我能说的是,如果是我,我会从修复模式开始,使用适当的数据类型和标准化设计。@草莓can请给我一些提示(就像我说的我是MySql中的乞丐)当你发现自己有枚举列名时(比如上面的2),你可以确定你的设计是次优的。约会和约会时的详细过程是两件不同的事情,属于两个单独的表。