1. 程式人生 > >SQLServer 新增資料時觸發器自動計算並更新相關值

SQLServer 新增資料時觸發器自動計算並更新相關值

USE [Jiao]
GO
/****** Object:  Trigger [dbo].[tri_ds_insert]    Script Date: 01/14/2015 22:22:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[tri_ds_insert] 
   ON  [dbo].[t_DynamicScore]
   for INSERT
AS 
BEGIN
	--定義變數
    declare @Teaching int,--教學總分
            @Environmental int,--環境總分
		@Cars int,--車輛總分
		@Teacher int,--教練總分
		@sumsum int,--評分總條數
		@teacsum int,--對某位教練評論的總條數
		@SchoolID varchar(50),--駕校ID
		@TeacherID varchar(50);--教師ID
    --在inserted表中查詢已經插入記錄資訊
    select @SchoolID = SchoolID,@TeacherID = TeacherID from inserted;
    --獲得教學總分
    select @Teaching=SUM(Teaching) from t_DynamicScore where 
[email protected]
; --環境總分 select @Environmental=SUM(Environmental) from t_DynamicScore where [email protected]; --車輛總分 select @Cars=SUM(Cars) from t_DynamicScore where [email protected]; --教練總分 select @Teacher=SUM(Teacher) from t_DynamicScore where [email protected]
; --獲得教學打分的數量 select @sumsum=COUNT(id) from t_DynamicScore where [email protected]; --對某位教練評分的總條數 select @teacsum=COUNT(id) from t_DynamicScore where [email protected]; --除法,小數點後保留4位,為該駕校最新的教學DSR update t_DSchool set Teaching=CONVERT(decimal(8,4),@Teaching*1.0000/@sumsum),--這裡乘以1.0000就為了得到的資料精確到小數點後4位 Environmental=CONVERT(decimal(8,4),@Environmental*1.0000/@sumsum), Cars=CONVERT(decimal(8,4),@Cars*1.0000/@sumsum) where
[email protected]
; update t_Teacher set DSR=CONVERT(decimal(8,4),@Teacher*1.0000/@teacsum) where [email protected]; END

相關推薦

SQLServer 新增資料觸發器自動計算更新相關

USE [Jiao] GO /****** Object: Trigger [dbo].[tri_ds_insert] Script Date: 01/14/2015 22:22:35 ***

mysql中新增資料,報錯(incorrect string value:'\xf0\x9f ) 字元轉換不正確

原因是UTF-8編碼有可能是兩個、三個、四個位元組。Emoji表情或者某些特殊字元是4個位元組,而Mysql的utf8編碼最多3個位元組,所以資料插不進去。 在網上搜了一下解決問題的方案,我選了一個方案解決了。 1.在mysql的安裝目錄下找到my.ini,作如下修改: [mys

【Java】解決Gson解析資料int自動轉化為double問題

Gson可以將json字串轉換時, 原json字串中的int , long型的數字會預設被轉換成double型別 , 導致數字會多一個小數點 , 如 1 會轉成 1.0。 解決方法: 只需將Gson gson = new Gson();換成下面這個  Gson gson = n

Bootstrap Table清空資料後再新增資料資料錯亂

function filterVave() { $("#table-vave").bootstrapTable('removeAll'); var selectedContent = $("#table-function").bootstrapTable('getSelections'); $

實現新增資料,關聯其他類,比如新增商品,需要商品型別,如何關聯這些型別

後臺: $detail是編輯時的模板資料 $yccart = D('Elecate')->where(array('cate_id' => $detail['cate_id'])) ->find(); $this->assign('yccart', $yccart

mybatis+oracle新增資料如果資料存在就更新,如果不存在就插入

判斷需要插入的資料是否存在,如果不存在就更新 <insert id="saveBatch" parameterType="java.util.List" >   MERGE INTO 表名 T   USING (  <foreach collection=

jsp新增資料,中文變問號

在hibernate.cfg.xml中新增 <property name="connection.useUnicode">true</property>    <property name="connection.characterEncod

Java程式碼TkMyBatis通用Mapper中新增資料同時獲取自增主鍵ID,與適用uuid 做主鍵獲取 id

一 . MyBatis mapper.xml檔案中在xml    1.   加入 這句 :useGeneratedKeys="true" keyProperty="ID"        keyProperty="資料庫中的主鍵欄位名對應的實體類欄位名" ;【填實體類欄位

SQL SERVER 儲存過程和事務(通過兩個自動計算第三個更新

SQL SERVER 儲存過程和事務 前提:再實際業務中,有一個需求,即是根據A欄位和B欄位計算C欄位(批量的)考慮用的事務和WHILE迴圈,做成儲存過程,然後作業,定時10分鐘更新一次。其中A欄位的值,又是根據其他4個欄位為一組求的平均值。 那麼該儲存過

oracle mybatis(Mergr into語句帶序列)新增資料如果資料存在就更新,如果不存在就插入

merge語法根據源表(也可是臨時生成的表)對目標表進行查詢匹配,匹配成功時執行更新操作,不成功時執行插入操作。1.基本語法:merge into 目標表 Tusing 源表 T1on (T.xx1 = T1.xx1 and T.xx2=T1.xx2/*匹配條件*/)when

sqlserver新增資料的時候提示物件名‘updated’無效

sqlserver新增資料的時候提示物件名‘update’無效 原來自己在要修改的表中添加了一個觸發器: USE [XSCJ] GO /****** 物件:  Trigger [dbo].[T1]    指令碼日期: 04/10/2011 16:25:05 ******/

vue實現動態新增資料滾動條自動滾動到底部

在使用vue實現聊天頁面的時候,聊天資料動態加到頁面中,需要實現滾動條也自動滾動到底部。這時我找到網上有個外掛 vue-chat-scroll 但是安裝後發現是用不了的,報錯資訊如下: VM14383:27 [Vue warn]: Failed

PHP 資料庫中某個欄位儲存的資料是陣列資料,怎樣獲取解析

當資料庫中某欄位儲存的資料是  陣列資料的時候 array ( 0 => array ( 'name' => 'xxx', '13fds' => '123123', 'dfsa' => '4444', 'fd

從資料庫中讀取資料,建立XML檔案更新維護XML

public class OperateXML { /// <summary> /// 檔案全路徑 /// </summary> private string fullF

如何將儲存在資料庫表中的城市(部分帶市字,部分不帶市字),以此匹配到正確的省份(帶有市字),更新相關的欄位資訊?

上述的問題實現的方式有很多,但是最好的實現方式應該如下: 1、新建省份表 CREATE TABLE `provincial` ( `pid` int(11) NOT NULL DEFAULT '0', `provincial` varchar(50) DEFAULT NULL,

thinkphp專案:前端介面中修改資料自動新增selected 或者 checked

在做專案的時候,常常碰到寫修改頁面mod 的時候,前端介面中有些多項選擇checkbox或者單項選擇radio或者列表選擇select預設是要給他們自動新增被選擇狀態的。這個時候封裝一個自動選中函式就一勞永逸,很方便呼叫。 可以用純原生js來實現。我這裡是混合著Jquery寫的,必須先引入才

困擾已久——DataGridView控制元件填充資料自動新增

    機房重構慢慢的走到了盡頭,最近正在進行最後的潤色中,今天解決了一個困擾許久但是非常簡單的問題。我們在查詢上機和充值記錄時,用到了DataGridView控制元件。我們在VB版的機房收費系統中也

以申購單為例項,講解Jquery動態刪減行,新增新增滑鼠事件,子視窗與父視窗傳自動計算金額,及輸入的驗證,前臺資料批量提交到後臺action

最近在為公司做一個小型ERP,其中有一個申購模組,公司需求大概:新建申購單,新建時新增要申購的物料資訊。輸入每樣物料的申購數量,預計價格,前臺自動計算總價。 設計需求大概:申購單應可以動態增減物料資訊。每條物料資訊應驗證不可重複。大概就是這些。本人剛剛畢業,參考網上資料後,

MySql資料庫插入一條資料,create_time欄位自動新增為當前時間

有時候我們會有這樣的需求。往資料庫新增一條資料。然後表中有一個欄位是creat_time。新增資料的同時,這個欄位預設為當前時間。其實很簡單。設定欄位型別為timestamp。然後下面預設值填寫CURRENT_TIMESTAMP 下面那個根據當前時間戳更新 勾上。yes.搞定

TextBlock 重寫,當文本過長自動截斷文本出現Tooltip

XML oca center res clr des glob ner edi 如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using