Announcement

Collapse
No announcement yet.

Thảo luận về SQL

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

  • #31
    Post lại cái bảng ví dụ, mô tả lại kết quả mong muốn và cho ví dụ với số má cụ thể và kết quả cụ thể đi bạn

    Comment


    • #32
      ngay manv sbt tk sotien_no sotien_co
      20110707 | 001 | 01 | 331 | 100.000 | 000.000
      20110707 | 001 | 01 | 111 | 000.000 | 100.000

      20110706 | 005 | 03 | 331 | 200.000 | 000.000
      20110706 | 005 | 03 | 112 | 000.000 | 200.000

      20110701 | 009 | 02 | 331 | 500.000 | 000.000
      20110701 | 009 | 02 | 152 | 000.000 | 500.000

      20110605 | 010 | 02 | 331 | 500.000 | 000.000
      20110605 | 010 | 02 | 112 | 000.000 | 500.000

      Bây giờ em chỉ muốn lấy sotien_no của 331 với tk có là 112 (tức lấy số tiền 200.000 và 500.000 của tk 331)thì dùng câu lệnh như thế nào? Cám ơn các bác trước!
      Tức em cần kết quả:

      ngay manv sbt tk sotien_no sotien_co
      20110706 | 005 | 03 | 331 | 200.000 | 000.000
      20110605 | 010 | 02 | 331 | 500.000 | 000.000

      Comment


      • #33
        Originally posted by nktkbnn View Post
        ngay manv sbt tk sotien_no sotien_co
        Bây giờ em chỉ muốn lấy sotien_no của 331 với tk có là 112 (tức lấy số tiền 200.000 và 500.000 của tk 331)thì dùng câu lệnh như thế nào? Cám ơn các bác trước!
        Tức em cần kết quả:

        ngay manv sbt tk sotien_no sotien_co
        Select * from A where (sotien_no in Select sotien_co from A where tk=112) AND tk=331

        Comment


        • #34
          Cách này hay cho trường hợp hạch toán 1 nợ 1 có!~Nhưng nếu mà hạch toán như sau thì cách này không đúng!

          ngay manv sbt tk sotien_no sotien_co
          20110707 | 001 | 01 | 331 | 100.000 | 000.000
          20110707 | 001 | 01 | 111 | 000.000 | 100.000

          20110706 | 005 | 03 | 331 | 200.000 | 000.000
          20110706 | 005 | 03 | 112 | 000.000 | 100.000
          20110706 | 005 | 03 | 112 | 000.000 | 100.000

          20110701 | 009 | 02 | 331 | 500.000 | 000.000
          20110701 | 009 | 02 | 152 | 000.000 | 500.000

          20110605 | 010 | 02 | 331 | 500.000 | 000.000
          20110605 | 010 | 02 | 112 | 000.000 | 400.000
          20110605 | 010 | 02 | 112 | 000.000 | 100.000

          Comment


          • #35
            Originally posted by nktkbnn View Post
            Nó ra kết quả không đúng bác ơi! Có bác nào có câu lệnh đúng không?
            Mình test thử trên máy mình với bảng dữ liệu mẫu dưới, cũng ra kết quả như bạn cần mà?
            Originally posted by nktkbnn View Post
            ngay manv sbt tk sotien_no sotien_co
            20110707 | 001 | 01 | 331 | 100.000 | 000.000
            20110707 | 001 | 01 | 111 | 000.000 | 100.000

            20110706 | 005 | 03 | 331 | 200.000 | 000.000
            20110706 | 005 | 03 | 112 | 000.000 | 100.000
            20110706 | 005 | 03 | 112 | 000.000 | 100.000

            20110701 | 009 | 02 | 331 | 500.000 | 000.000
            20110701 | 009 | 02 | 152 | 000.000 | 500.000

            20110605 | 010 | 02 | 331 | 500.000 | 000.000
            20110605 | 010 | 02 | 112 | 000.000 | 400.000
            20110605 | 010 | 02 | 112 | 000.000 | 100.000
            Mình có chỉnh lại câu truy vấn để kq giống như bạn nêu trong post trên luôn, bạn thử lại xem sao:
            SELECT DISTINCT T1.*
            FROM taikhoan T1, taikhoan T2
            WHERE T1.sbt = T2.sbt
            AND T1.tk = 331 AND t2.tk = 112;

            Comment


            • #36
              SELECT b.sotien_co
              FROM (select ngay,manv,sbt,sotien_no,0 as sotien_co from A where tk like '112%') a ,
              (select ngay,manv,sbt,0 as sotien_no,sotien_co from A where tk like '331%') b
              where a.ngay=b.ngay and a.manv=b.manv and a.sbt=b.sbt and b.sotien_co<>0 and a.sotien_no<>0;
              Em dùng câu trên mới đúng trong hai trường hợp trên! Không biết bác nào còn cách nào hay hơn không?
              Last edited by Guest; 08-07-2011, 18:33.

              Comment

              LHQC

              Collapse
              Working...
              X