【发布时间】:2014-11-05 22:26:32
【问题描述】:
我有两张桌子:
- 带有字段 fld_id(整数)、fld_allocated_hours(整数)、fld_project_id(整数)的项目
- 带有字段 fld_id(整数)、fld_allocated_time(整数)、fld_project_id(整数)的TIMESHEET
我有这个程序:
CREATE PROCEDURE sp_insert_allocated_time(p_project_id integer, p_allocated_time integer)
RETURNS void
AS
BEGIN
INSERT INTO dbo.Timesheet(fld_id, fld_project_id,fld_allocated_time)
from
(
SELECT p.fld_id, p.fld_allocated_hours t.fld_allocated_time
FROM dbo.Project p
INNER JOIN dbo.Timesheet t
ON p.fld_id=t.fld_id
where t.fld_project_id = p_project_id
)AS Alias
GROUP BY fld_id, fld_allocated_days, fld_allocated_time
having SUM(fld_allocated_time) < fld_allocated_hours;
END;
我想做这个程序:
- 从参数 fld_project_id 将分配的时间插入表 Timesheet 中
- 检查表 Timesheet 中的列 SUM(fld_allocated_time) 是否小于或等于表 Project 中的 fld_allocated_hours。
- 进行插入或错误消息或退出
【问题讨论】:
标签: sql sql-server sql-server-2008 tsql stored-procedures