sql语句实现增加一行求和

如果这是SQLServer,请尝试使用以下语句selectcasewhenGROUPING(a.rcpt_no)=1andGROUPING(b.name)=1then'SUM'elseMax(b.name)endname,casewhenGROUPING(a.rcpt_no)=1andGROUPING(b.name)=1then'SUM'elseMax(a.rcpt_no)end收到,sum(casewhena.money_type='卡支付'thenIncomeelse0end)为卡支付,sum(casewhena.money_type='协同支付'thenIncomeelse0end)为协同支付,sum(casewhena.money_type='cash'thenIncomeelse0end)为现金支付,sum(casewhena.money_type='现金'然后退款0end)作为现金退款,sum(casewhena.money_type='cash'thenRevenue-refundelse0end)为实际支付的现金,sum(casewhena.money_type='accounting'thenIncome-refundelse0end)为会计,sum(invenue-refund)为总费用/*sum(invenue)as卡支付*/frominp_payments_moneya,pat_master_indexbwherea.rcpt_no=b.rcpt_nogroupbya.rcpt_no,b.namewithrolluphavingGROUPING(a.rcpt_no)=1andGROUPING(b.name)=1orGROUPING(a.rcpt_no)=0andGROUPING(b.name)=0orderbyMax(a.rcpt_no),Max(b.姓名)

在sqlserver中,在表中插入一行记录之前检查这条记录是否已经存在,用触发器实现。

Altertriggertrig_checkonpraforinsertasbegindeclare@idintselect@id=idfrominsertedif((selectcount(*)fromprawhereid=@id)>1)beginprint('数据已存在')rollbackendelseginprint('插入成功')end