Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
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ông cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã đượ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