我的数据库示例(在底部有SQLFiddle链接):
我有几个表:
表Login
1. User_ID(整数) 2. Email(varchar) 3. Passwort 4. Session ID
表Business
5. ID_Login_ID_Business(整数) 6. NameOfCompany(varchar) 7. NameContact(varchar) 8. ID_Location_FK(整数) 9. ID_BalancesheetInput_FK(整数) 10. ID_Balancesheetoutput(整数)
表ID_BalancesheetInput
11. ID 12. FK_Business_ID(整数) 13. RessourceName(varchar50) 14. Amount(十进制) 15. Unit_Fk(整数) 16. TypeOfRessource_FK(整数)
表Units
17. Unit_id 18. Unit
表TypeOfRessource 19. ID_Type 20. Type SQL应该检查Buisness中所有与BalancesheetInput中FK_Business_ID相等的ID_Login_ID_Business(外键)项,对具有相同RessourceName的所有金额进行求和,并简单添加typeofRessource以检查正确的Unit。
例如:
表Business
ID、NameOfCompany、ID_BalancesheetInput_FK
1 Apples 1 2 Minisoft 2
表BalancesheetInput
ID、FK_Business_ID、RessourceName、Amount、Unit_FK、TypeOFRessource_FK
1、1、电力、100、3、2 2、1、热能、200、3、2 3、1、热能、150、3、2 4、1、轻燃油、10、3、2 5、1、螺丝钉、200、3、2 6、1、水、200、4、3
表Units
单位ID、单位
我有几个表:
表Login
1. User_ID(整数) 2. Email(varchar) 3. Passwort 4. Session ID
表Business
5. ID_Login_ID_Business(整数) 6. NameOfCompany(varchar) 7. NameContact(varchar) 8. ID_Location_FK(整数) 9. ID_BalancesheetInput_FK(整数) 10. ID_Balancesheetoutput(整数)
表ID_BalancesheetInput
11. ID 12. FK_Business_ID(整数) 13. RessourceName(varchar50) 14. Amount(十进制) 15. Unit_Fk(整数) 16. TypeOfRessource_FK(整数)
表Units
17. Unit_id 18. Unit
表TypeOfRessource 19. ID_Type 20. Type SQL应该检查Buisness中所有与BalancesheetInput中FK_Business_ID相等的ID_Login_ID_Business(外键)项,对具有相同RessourceName的所有金额进行求和,并简单添加typeofRessource以检查正确的Unit。
例如:
表Business
ID、NameOfCompany、ID_BalancesheetInput_FK
1 Apples 1 2 Minisoft 2
表BalancesheetInput
ID、FK_Business_ID、RessourceName、Amount、Unit_FK、TypeOFRessource_FK
1、1、电力、100、3、2 2、1、热能、200、3、2 3、1、热能、150、3、2 4、1、轻燃油、10、3、2 5、1、螺丝钉、200、3、2 6、1、水、200、4、3
表Units
单位ID、单位
- 1,件
- 2,吨
- 3,千瓦时
- 4,平方米
- 5,升
表格 TypeOFRessource
ID_Type, 类型
- 1,资产
- 2,能源
- 3,材料
以下语句试图捕获所选业务的资源,并计算具有相同名称(例如电力)的条目。它们属于同一公司,但出现了问题。
每次我使用我的SQL语句:
"SELECT DISTINCT "
. "BalancesheetInput.RessourceName AS Rn, "
. "Units.Unit AS En, "
. "SUM(BalancesheetInput.Amount) AS TotalAmount "
. "FROM Business"
. "INNER JOIN BalancesheetInput ON FK_Business_ID = 1 "
. "INNER JOIN Units ON Unit_FK = Unit_ID "
. "INNER JOIN TypeOfRessource ON TypeOf Ressources = 2 "
. "GROUP BY BalancesheetInput.RessourceName ");
结果:
轻质燃料油 60 千瓦时 能源 - 电力 600 千瓦时 能源 - 热能 2100 千瓦时
看起来他每行都添加了6倍的量。
我想要的结果:
轻质燃料油 10 千瓦时 能源 - 电力 100 千瓦时 能源 - 热能 350 千瓦时
如果您需要更多信息,只需告诉我需要什么帮助解决问题。