2016-05-01 8 views
0

Ich habe derzeit TableOne mit einer Spalte: ID. Ich möchte eine abgeleitete zweite Spalte, NumSemesters hinzufügen, die die Anzahl der Vorkommen TableOne_ID in einer zweiten Tabelle sein sollte, TableTwo.SQL abgeleitete Spalte

Im Wesentlichen sollte NumSemesters die Anzahl TableOne.ID = TableTwo.Student_ID sein.

Wie ändere ich meine erste Tabelle, um diese zweite Spalte hinzuzufügen?

In Tabelle 1 ist ID der Primärschlüssel.

+0

Warum würden Sie das tun? Sie müssten die Tabellen synchron halten. Gibt es einen guten Grund dafür? –

+0

@juergend Guter Punkt. Ich vermute, ich sollte konsolidieren und dann von dort gehen. – Queue

+0

Nun, was versuchst du eigentlich zu erreichen? –

Antwort

1

So etwas wie dies (vorausgesetzt, Sie bereits die Spalte NumSemesters erstellt):

update TableOneset NumSemesters = b.idCount 
from TableOne a left join 
(select Student_ID, count(Student_ID) as 'idCount' from TableTwo groupby Student_ID) b on a.ID = b.Student_ID 
0

Ich denke, man für so etwas suchen.

SELECT TableOne.ID, TableTwo.NumSemesters FROM TableOne INNER JOIN (SELECT ID, COUNT(*) AS NumSemesters FROM TableOne GROUP BY ID) as TableTwo ON TableOne.ID = TableTwo.ID 

Jim