Announcement

Collapse
No announcement yet.

[Hỏi SQL]Ai biết chỉ dùm

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [Hỏi SQL]Ai biết chỉ dùm

    1/Ngày mua hàng (NGHD) của một khách hàng thành viên sẽ lớn hơn hoặc bằng ngày khách hàng đó đăng ký thành viên (NGDK).
    2/Mỗi một hóa đơn phải có ít nhất một chi tiết hóa đơn.
    3/15. Doanh số của một khách hàng là tổng trị giá các hóa đơn mà khách hàng thành viên đó đã mua.

    KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK).
    NHANVIEN (MANV,HOTEN, NGVL, SODT)
    SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)
    HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)
    CTHD (SOHD,MASP,SL)

  • #2
    up giùm bạn, mình cũng đang quan tâm///////////

    Comment


    • #3
      Gợi ý
      2
      PHP Code:
      --CÂU 13
      --TRIGGER ON TABLE HOADON
      CREATE TRIGGER SLHD_CHECK
      ON HOADON
      FOR INSERT
      AS
        DECLARE @
      SOHOADON INT
        SELECT 
      @SOHOADON=SOHD
        FROM INSERTED
           INSERT INTO CTHD VALUES
      (@SOHOADON,'NULL',1)
      --
      TRIGGER ON TABLE CTHD
      CREATE TRIGGER SLHD
      ON CTHD
      FOR DELETEUPDATE
      AS
        DECLARE @
      SLOHOADON INT
        SELECT 
      @SLHOADON=COUNT(CTHD.SOHD)
        
      FROM DELETEDHOADON
        WHERE DELETED
      .SOHD=HOADON.SOHD
      IF @SLHOADON<1
         BEGIN
           ROLLBACK TRAN
           
      PRINT('MOI HOA DON PHAI CO IT NHAT 1 HOA DON CHI TIET')
        
      END 
      1
      PHP Code:
      --câu 11
         
      --TRIGGER ON HOADON
      CREATE TRIGGER NGAYHD_NGAYDK_CHECK
      ON HOADON
      FOR INSERTUPDATE
      AS
          Declare @
      nqdk , @nghd smalldatetime
         Select 
      @ngdk=NGDK, @nghd=NGHD
         From Inserted
      KHACHHANG
         Where Inserted
      .MAKH=KHACHHANG.MAKH 
      IF @nghd<@ngdk
        BEGIN
         ROLLBACK TRAN
         
      PRINT('NGAY HOA DON KHONG DUOC NHO HON NGAY DANG KY CUA KHACH HANG')
        
      END
       
      --TRIGGER ON KHACHHANG
      CREATE TRIGGER NGHD_NGDK
      ON KHACHHANG
      FOR UPDATE
      AS
         Declare @
      nqdk , @nghd smalldatetime
         Select 
      @ngdk=NGDK, @nghd=NGHD
         From Inserted
      HOADON
         Where Inserted
      .MAKH=HOADON.MAKH 
      IF @nghd<@ngdk
         Begin
             Rollback TRAN
             
      print('Ngay mua hang cua khach hang phai lon hon ngay khach hang dang ky thanh vien')
         
      End 
      Last edited by 11520120; 03-11-2013, 21:17.
      :beauty::beauty::beauty::beauty:

      Comment


      • #4
        Originally posted by 11520120 View Post
        Gợi ý
        2
        PHP Code:
        --CÂU 13
        --TRIGGER ON TABLE HOADON
        CREATE TRIGGER SLHD_CHECK
        ON HOADON
        FOR INSERT
        AS
          DECLARE @
        SOHOADON INT
          SELECT 
        @SOHOADON=SOHD
          FROM INSERTED
             INSERT INTO CTHD VALUES
        (@SOHOADON,'NULL',1)
        --
        TRIGGER ON TABLE CTHD
        CREATE TRIGGER SLHD
        ON CTHD
        FOR DELETEUPDATE
        AS
          DECLARE @
        SLOHOADON INT
          SELECT 
        @SLHOADON=COUNT(CTHD.SOHD)
          
        FROM DELETEDHOADON
          WHERE DELETED
        .SOHD=HOADON.SOHD
        IF @SLHOADON<1
           BEGIN
             ROLLBACK TRAN
             
        PRINT('MOI HOA DON PHAI CO IT NHAT 1 HOA DON CHI TIET')
          
        END 
        1
        PHP Code:
        --câu 11
           
        --TRIGGER ON HOADON
        CREATE TRIGGER NGAYHD_NGAYDK_CHECK
        ON HOADON
        FOR INSERTUPDATE
        AS
            Declare @
        nqdk , @nghd smalldatetime
           Select 
        @ngdk=NGDK, @nghd=NGHD
           From Inserted
        KHACHHANG
           Where Inserted
        .MAKH=KHACHHANG.MAKH 
        IF @nghd<@ngdk
          BEGIN
           ROLLBACK TRAN
           
        PRINT('NGAY HOA DON KHONG DUOC NHO HON NGAY DANG KY CUA KHACH HANG')
          
        END
         
        --TRIGGER ON KHACHHANG
        CREATE TRIGGER NGHD_NGDK
        ON KHACHHANG
        FOR UPDATE
        AS
           Declare @
        nqdk , @nghd smalldatetime
           Select 
        @ngdk=NGDK, @nghd=NGHD
           From Inserted
        HOADON
           Where Inserted
        .MAKH=HOADON.MAKH 
        IF @nghd<@ngdk
           Begin
               Rollback TRAN
               
        print('Ngay mua hang cua khach hang phai lon hon ngay khach hang dang ky thanh vien')
           
        End 
        cám ơn anh,nhưng còn có nào đơn giản hơn không a ?chưa học Trigger nên k hiểu lắm

        Comment


        • #5
          cái này làm trigger thôi, nếu chưa học thì chưa cần làm. hồi mình học cũng vây
          :beauty::beauty::beauty::beauty:

          Comment


          • #6
            không có cái thứ 3 ak

            Comment


            • #7
              Originally posted by 12520153 View Post
              không có cái thứ 3 ak
              Join, group by và sum thôi. Có từ khóa rồi bạn suy nghĩ thử đi.

              Comment

              LHQC

              Collapse
              Working...
              X