2016-04-09 8 views
0

Ich bin ein Lehrer mit SQLite, um mein Notenbuch zu verwalten. Ich bin neu in Datenbanken und Programmierung im Allgemeinen.Mehrere Spalten nach einem Feld aus einer anderen Tabelle in SQLite

Ich habe zwei Tabellen. Einer zeigt die Schüler und die Noten für einen Test und einen Aufsatz.

 
Student table 

student| Test | Essay 
-------------------- 
Skudd | 50 | 10 
Jim | 25 | 11 

Die andere zeigt das "Out of Mark" und das Seemester Gewicht.

 
Assessment Table 

Assessment | Out_of | weight | 
----------------------------- 
Test  | 50 | 60 | 
Essay  | 15 | 40 | 

Ich mag eine Ansicht erstellen, die jeden Student Klasse für den Test aus dem Schülertisch und dividieren durch die out_of Marke aus der Bewertungstabelle nehmen einen Prozentsatz zu berechnen.

wie diese

 
New View 

Student | Test | Essay | 
--------|------|-------| 
Skud | 100 | 66 | 
Jim  | 50 | 73 | 

Wie kann ich mehrere/divide durch einen einzelnen Wert aus der Bewertungstabelle (Testfeld), um mehrere Datensätze in der Schülernoten Tabelle

Antwort

0

schauen Sie sich einfach die Werte mit einem Unterabfrage:

SELECT Student, 
     Test/(SELECT Out_of 
       FROM Assessment 
       WHERE Assessment = 'Test' 
      ) AS Test, 
     Essay/(SELECT Out_of 
       FROM Assessment 
       WHERE Assessment = 'Essay' 
       ) AS Essay 
FROM Student; 

Es ist auch möglich, die Tabellen zu verknüpfen, aber das ist in der Regel nicht für solchen Einzelwert Lookups:

SELECT Student, 
     Test/Test_Ass.Out_of, 
     Essay/Essay_Ass.Out_of 
FROM Student 
JOIN Assessment AS Test_Ass ON Test_Ass.Assessment = 'Test' 
JOIN Assessment AS Essay_Ass ON Essay_Ass.Assessment = 'Essay'; 
+0

funktioniert wie ein Charme, vielen Dank. Es scheint einen Unterschied zwischen "Test" und "Test" zu geben. Ich hatte keine Ahnung, dass Zitattypen einen Unterschied machen. – Ben

Verwandte Themen