2017-09-15 27 views
0

之前檢查兩個不同表格的總和我有圖片中的表格,我想要做的是確保學生不能在每個學年學習45分以上的課程。在INSERT

所以我想每次都在Studies表中插入一些東西,這樣學生在StudiesHasStudied合計的總分不會在一年內超過45分。

所以,如果一個學生有40個組合在StudiesHasStudied,插入新行對於這名學生在Studies表,這將導致他們得到超過45分應該是不可能的。

不知道我該怎麼做。

How my tables look now

編輯

因爲我的講師避談數據庫的性能和這樣的,我做了以下。

我做插入正常,但插入完成後,我做了一個DELETE條件,檢查所以得分不等於或高於45我還希望它打印一條消息,如果刪除通過說:「學生不能學習更多的則45分)

我有以下的代碼,但它會刪除研究表或所有行,而不是等於45

DELETE FROM Studies 
WHERE EXISTS (SELECT stID, SUM(sPoints) totalpoint 
FROM (SELECT stID, sPoints 
     FROM Studies 
     UNION ALL 
     SELECT stID, sPoints 
     FROM HasStudied) derp 
GROUP BY stID 
HAVING SUM(sPoints) >= 45) 

回答

1

你怎麼只是上面sPoints的那些檢查兩個表中的值,您可以使用trigger來檢查

或者您可以使用更復雜的檢查使用UDF

+0

因爲我的講師沒有說任何有關性能的信息..我做了OP中陳述的內容,但仍然無法使其正常工作 –