Home > Software design >  SQL Create View with sum and 2 tables
SQL Create View with sum and 2 tables

Time:06-19

I have following tables:

Project:

ProjID Projekt
11     A
12     B
13     C

personal

PID Person
1   Hans
2   Rolf
3   Ursula
4   Paul

projectzugehoerigkeit

PID ProjID  ProjZeit
1     11    60
1     12    40
2     13    100
3     11    20
3     12    50
3     13    30
4     11    80
4     13    20

I am trying to create a VIEW that displays me Projekt from the Project table with the sum of the ProjZeit from projectzugehoerigkeit.

It should look like this:

Projekt ProjektStundenInsgesamt
A       160
B       90
C       150

I tried it with this:

CREATE VIEW ueberblick1 AS 

SELECT project.Projekt, SUM(projektzugehoerigkeit.ProjZeit) AS ProjektStundenInsgesamt 
FROM project, projektzugehoerigkeit 
GROUP BY project.Projekt;

but it always looks like this:

Projekt ProjektStundenInsgesamt
A       400
B       400
C       400

Thank you

CodePudding user response:

This is not the correct way to do a join

SELECT project.Projekt, SUM(projektzugehoerigkeit.ProjZeit) AS ProjektStundenInsgesamt 
FROM project, projektzugehoerigkeit 
GROUP BY project.Projekt;

does a cross join between project and projektzugehoerigkeit

You need a real join like this

SELECT project.Projekt, SUM(projektzugehoerigkeit.ProjZeit) AS ProjektStundenInsgesamt 
FROM project
JOIN projektzugehoerigkeit on project.projid = projektzugehoerigkeit.projid
GROUP BY project.Projekt;
  • Related