Announcement

Collapse
No announcement yet.

Hỏi Về CSDL

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

  • Hỏi Về CSDL

    Co Bảng THANHVIEN(MaThanhvien,MaLoaiQuanHe,NamPhatSinh),Ma LoaiQuan he la 1 0r 2
    viết câu lệnh cho biêt số lượng thành viên của quan hệ 1,quan hệ 2 trong từng năm....tức là ta xuất ra bảng
    có các cột ( Năm, quan hệ 1,quan hệ 2).......Mong mọi nguoi giúp đỡ...chân thành cám ơn!!

  • #2
    Originally posted by 10520292 View Post
    Co Bảng THANHVIEN(MaThanhvien,MaLoaiQuanHe,NamPhatSinh),Ma LoaiQuan he la 1 0r 2
    viết câu lệnh cho biêt số lượng thành viên của quan hệ 1,quan hệ 2 trong từng năm....tức là ta xuất ra bảng
    có các cột ( Năm, quan hệ 1,quan hệ 2).......Mong mọi nguoi giúp đỡ...chân thành cám ơn!!
    Câu này cũng tương đối

    Có làm và test sẵn rồi này:
    Đây là tạo table để test

    Code:
    USE [test]
    GO
    
    /****** Object:  Table [dbo].[TV]    Script Date: 12/16/2012 13:31:17 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    CREATE TABLE [dbo].[TV](
    	[MaTV] [int] IDENTITY(1,1) NOT NULL,
    	[MaLoaiQH] [bit] NOT NULL,
    	[Nam] [date] NOT NULL
    ) ON [PRIMARY]
    
    GO
    
    ALTER TABLE [dbo].[TV] ADD  CONSTRAINT [DF_TV_MaLoaiQH]  DEFAULT ((1)) FOR [MaLoaiQH]
    GO
    Đây là câu SQL

    Code:
    Select tb1.Nam,tb1.MaQuanHeTRUE,tb2.MaQuanHeFALSE From
    (Select YEAR(Nam) as Nam, count(*) as [MaQuanHeTRUE] From TV Where MaLoaiQH = 'true' GROUP BY YEAR(Nam),MaLoaiQH) as tb1 FULL OUTER JOIN
    (Select YEAR(Nam) as Nam, count(*) as [MaQuanHeFALSE] From TV Where MaLoaiQH = 'False' GROUP BY YEAR(Nam),MaLoaiQH) as tb2 on (tb1.Nam = tb2.Nam)
    Còn đây là hình làm xong này

    Capture_12_16_13_32.PNGCapture_12_16_13_33.PNG

    Comment


    • #3
      Hình như đúng ý e rồi thì fai....cám ơn a nhiều nhé..để e test phát có gì thông báo bác sau...hehe

      Comment


      • #4
        Híc e làm CSDL trên acess ( cái này là bị ép buộc )...acess không hộ trợ FULL OUTER JOIn ...hic'

        Comment


        • #5
          Solution "Access doesn't support the FULL OUTER join clause"

          You can simulate the FULL OUTER join functionality by performing three different joins, and then UNION together the three different result sets. Where Set 1 would be created using an INNER JOIN, Set 2 would be created with a LEFT OUTER JOIN and Set 3 would be created using a RIGHT OUTER JOIN.

          And then u can calculate sum each MaLoaiQHTrue column or MaLoaiQHFalse column!!!
          09520147
          Dương Văn Lâm
          Last edited by 09520147; 18-12-2012, 19:40.

          Comment


          • #6
            a lâm a có thể viết câu truy vấn giùm e được không...câu lệnh này e thực sự bó tay .

            Comment


            • #7
              Originally posted by 10520292 View Post
              a lâm a có thể viết câu truy vấn giùm e được không...câu lệnh này e thực sự bó tay .
              Không phãi em không làm được mà em chưa cố gắng hết mình thôi, khi gặp một vấn đề đen tối, chỉ cần chút kẻ hở ánh sáng là em có thể tìm đến đích rồi!!! chúc em may mắn

              Comment


              • #8
                SELECT Year(NgayPhatSinh) as Nam,( select count(MaLoaiQuanHe) as QuanHe_1 from THANHVIEN where MaLoaiQuanHe=1 group by year(NgayPhatSinh) order by year(NgayPhatSinh) desc),( select count(MaLoaiQuanHe) as QuanHe_2 from THANHVIEN where MaLoaiQuanHe=2 group by year(NgayPhatSinh) order by year(NgayPhatSinh) desc) from THANHVIEN group by year(NgayPhatSinh) order by year(NgayPhatSinh) desc câu lệnh của e viêt như vậy nè a...nhưng nếu có 1 năm thì được (ví dụ 2012),còn nếu có 2 năm trở lên thì sai (ví dụ 2012,2013)......bác fix dùm e phát

                Comment


                • #9
                  Originally posted by 10520292 View Post
                  SELECT Year(NgayPhatSinh) as Nam,( select count(MaLoaiQuanHe) as QuanHe_1 from THANHVIEN where MaLoaiQuanHe=1 group by year(NgayPhatSinh) order by year(NgayPhatSinh) desc),( select count(MaLoaiQuanHe) as QuanHe_2 from THANHVIEN where MaLoaiQuanHe=2 group by year(NgayPhatSinh) order by year(NgayPhatSinh) desc) from THANHVIEN group by year(NgayPhatSinh) order by year(NgayPhatSinh) desc câu lệnh của e viêt như vậy nè a...nhưng nếu có 1 năm thì được (ví dụ 2012),còn nếu có 2 năm trở lên thì sai (ví dụ 2012,2013)......bác fix dùm e phát
                  Em nghĩ là group by theo year(NgayPhatSinh), điều kiện là MaLoaiQuanHe=... còn count thì mình fai count MaThanhvien chứ anh?

                  Comment


                  • #10
                    mấy hôm nay a mắc thi zới báo cáo, hôm nay rãnh làm cho e trên access


                    Code:
                    Select tb1.Namtb1, tb1.MaQuanHeTRUE, tb2.MaQuanHeFALSE From
                    (Select format(Nam,'yyyy') as Namtb1, count(*) as [MaQuanHeTRUE] From TV Where MaLoaiQH = YES GROUP BY format(Nam,'yyyy')) as tb1 INNER JOIN
                    (Select format(Nam,'yyyy') as Namtb2, count(*) as [MaQuanHeFALSE] From TV Where MaLoaiQH = NO GROUP BY format(Nam,'yyyy')) as tb2 on (tb1.Namtb1 = tb2.Namtb2)
                    
                    UNION
                    
                    Select tb1.Namtb1, tb1.MaQuanHeTRUE, tb2.MaQuanHeFALSE From
                    (Select format(Nam,'yyyy') as Namtb1, count(*) as [MaQuanHeTRUE] From TV Where MaLoaiQH = YES GROUP BY format(Nam,'yyyy')) as tb1 LEFT JOIN
                    (Select format(Nam,'yyyy') as Namtb2, count(*) as [MaQuanHeFALSE] From TV Where MaLoaiQH = NO GROUP BY format(Nam,'yyyy')) as tb2 on (tb1.Namtb1 = tb2.Namtb2)
                    
                    UNION
                    
                    Select tb1.Namtb1, tb1.MaQuanHeTRUE, tb2.MaQuanHeFALSE From
                    (Select format(Nam,'yyyy') as Namtb1, count(*) as [MaQuanHeTRUE] From TV Where MaLoaiQH = YES GROUP BY format(Nam,'yyyy')) as tb1 RIGHT JOIN
                    (Select format(Nam,'yyyy') as Namtb2, count(*) as [MaQuanHeFALSE] From TV Where MaLoaiQH = NO GROUP BY format(Nam,'yyyy')) as tb2 on (tb1.Namtb1 = tb2.Namtb2)
                    Đây là database đi kèm + hình, vấn đề cũng dễ giải quyết mà em!!!

                    http://www.mediafire.com/?bkm94f7ljopb81k
                    Attached Files

                    Comment

                    LHQC

                    Collapse
                    Working...
                    X