Từ 1 tới 1 trên tổng số 1 kết quả

Đề tài: không lỗi có cú pháp trả về kết quả null

  1. #1
    Ngày gia nhập
    05 2014
    Bài viết
    4

    Mặc định không lỗi có cú pháp trả về kết quả null

    bài tập của mình có tất cả 3 bảng Hoso các trường :Khoá manv,hoten,gioitinh,ngaysinh,ngayvn(ngày vào ngành)
    Phòng ban: Map,tenphong,vitri.
    lượng:manv,map,hesoluong,ngayll(ngày lên lương)
    câu hỏi yêu cầu là :
    tạo report thống kê theo phòng của tháng hiện tại.Biết rằng 3 năm lên lương 1 lần mỗi lần lên hệ số lương được cộng 0.3 mình đã làm như sau nhưng k thể chạy được lúc chạy quay lại bảng xem trường hệ số lương của bảng lương thành null hết

    CREATE PROCEDURE tanghsl
    -- Add the parameters for the stored procedure here
    --<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>,
    --<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
    AS
    BEGIN
    declare @namct int
    declare @solantang float
    declare @nambd datetime
    declare @namkt datetime
    declare @hsltang float
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    SELECT @nambd=YEAR(dbo.hoso.ngvn),@namkt=YEAR(dbo.luong.n gayll),@namct=datediff(yy,@nambd, @namkt),@solantang=@namct/3,@hsltang=@solantang*0.3 FROM dbo.hoso INNER JOIN
    dbo.luong ON dbo.hoso.manv = dbo.luong.manv
    update dbo.luong
    set hesoluong=hesoluong+@hsltang
    from dbo.luong

    - - - Nội dung đã được cập nhật ngày 11-04-2015 lúc 10:03 AM - - -

    Code:
    ALTER PROCEDURE [dbo].[ducanh]
    @manv nvarchar(50)
    	-- Add the parameters for the stored procedure here
    	--<@Param1, sysname, @p1> <Datatype_For_Param1, , int> = <Default_Value_For_Param1, , 0>, 
    	--<@Param2, sysname, @p2> <Datatype_For_Param2, , int> = <Default_Value_For_Param2, , 0>
    AS
    BEGIN
    declare @namct int
    declare @solantang float
    declare @nambd datetime
    declare @namkt datetime
    declare @hsltang float
    	SELECT @nambd=dbo.hoso.ngvn,@namkt=dbo.luong.ngayll,@namct=datediff(yy,@nambd, @namkt),@solantang=@namct/3,@hsltang=@solantang*0.3 
    	FROM  dbo.hoso INNER JOIN
                          dbo.luong ON dbo.hoso.manv = dbo.luong.manv
                          
    	update dbo.luong
    	set hesoluong=hesoluong+@hsltang
    	from dbo.hoso INNER JOIN
                          dbo.luong ON dbo.hoso.manv = dbo.luong.manv
    	where @manv=dbo.hoso.manv
    END
    van ra ket qua sai ai giup voi

    - - - Nội dung đã được cập nhật ngày 11-04-2015 lúc 10:16 AM - - -

    kết quả ra sai năm bắt đầu 2002 năm kết thúc 2015 kết quả đúng phải là 2015-2002=13/3=4*0.3=1.2 nhưng kết quả ra tận 3.3 mong giúp
    Đã được chỉnh sửa lần cuối bởi hoavipvieng : 11-04-2015 lúc 08:47 AM.

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn