Co So Du Lieu (thi)

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Co So Du Lieu (thi) as PDF for free.

More details

  • Words: 3,161
  • Pages: 17
QUẢN LÝ DỰ ÁN Câu 1: Viết Trigger đbảo mỗi nhviên chỉ thhiện 1 d.án Create Trigger Cau1 ON Phan_cong FOR Insert, Update AS if exists (select * from Inserted where manv in ( select distinct manv from Phan_cong ) ) Begin Raiserror('Mot nhvien ko the thgia nhieu d.án',16,1) Rollback tran End Câu 2: Viết Trigger đbảo một d.án đbảo chỉ t.đa 5 nhviên Create Trigger Cau2 ON Phan_cong FOR Insert, Update AS if exists (select * from Inserted where manv in ( select manv from Phan_cong group by manv having count(manv)=6 ) ) Begin Raiserror('Mot d.án ko thể quá 5 nhviên',16,1) Rollback tran End Câu 3: Viết Trigger đbảo ngày kthúc luôn >= ngày bđầu dự án Create Trigger Cau3 ON Du_an FOR Insert, Update AS if exists (select * from Inserted where ngayketthuc < ngaybatdau ) Begin Raiserror('Loi xay ra', 16, 1) Rollback tran End Câu 4: Viết Trigger đbảo nhviên nếu là trưởng phòng thì ko đc tham gia vào bkì d.án nào. Create Trigger Cau4 ON Phan_cong FOR Insert, Update AS if exists (select * from Inserted where manv in ( select distinct matp from Phong_ban

) ) Begin Raiserror('Loi xay ra',16,1) Rollback tran End Câu 5: Viết Trigger đ.bảo một d.án ko thể kéo dài quá 10 ngày Create Trigger Cau5 ON Du_an FOR Insert, Update AS if exists (select * from Inserted where ngayketthuc-ngaybatdau>10 ) Begin Raiserror('Loi xay ra',16,1) Rollback tran End Câu 6: Viết Trigger đ.bảo bkì d.án nào cũng phải có ít nhất 1 tr.phòng thgia Create Trigger Cau6 on Phan_cong for Insert, Update As if exists (select * from Inserted where manv in (select distinct matp from Phong_ban group by matp having count(matp)>=1) ) begin raiserror('loi',16,1) rollback tran end Câu 7: Viết Trigger đ.bảo khi có 1 d.án chưa h.thành thì ko đc có thêm d.án khác. Create Trigger Cau7 ON Du_an FOR Insert, Update AS if exists (select * from Inserted where ngaybatdau < any( select ngayketthuc from Du_an ) ) Begin Raiserror('Loi xay ra',16,1) Rollback tran End Câu 8: Viết Trigger đ.bảo 1 nhviên ko thể thgia >= 2 d.án trong cùng khoảng thgian. create Trigger Cau8c on Phan_cong for Insert, Update As

declare @count int declare @ngay datetime declare @ngaykt datetime select @count =count(manv) from Inserted a, Du_an i where i.mada = a.mada and ngaybatdau =@ngay and ngayketthuc =@ngaykt if (@count >0) begin if exists (select * from Inserted where mada in (select distinct mada from Phan_cong group by mada having count(mada)>=2 ) ) begin raiserror('khong the mot nhan vien tham gia 2 du cung 1 khoang thoi gian',16,1) rollback tran end end Câu 9: Viết Trigger đbảo những người thgia trong cùng 1 d.án phải ở những phòng khác nhau Câu 10: Viết Trigger đbảo những người thgia trong cùng 1 d.án phải ở cùng phòng nhau. Câu 11: Viết Trigger đ.bảo 1 nhviên ko thể thgia >=2 d.án trong cùng khoảng thời gian, và sau khi hthành d.án này thgia d.án khác phải cách nhau 5 ngày. Câu 12: Viết Trigger đ.bảo nhvien trphòng phải thuộc phòng đó Câu 13: Viết câu truy vấn liệt kê tên nhviên đang thgia nhiều hơn 1 d.án select tennv from Du_an a, Phan_cong b, Nhan_vien c where a.mada = b.mada and b.manv=b.manv group by tennv having count(tennv)>1 Câu 14: Viết câu trvấn liệt kê tên d.án đã h.thành mà số người thgia gia d.án này >= 5 và trong đó ko có trphòng nào. - Đầu tiên viết hàm trả về số trưởng phòng thgia các d.án Create function Cau14(@Ngay datetime) returns @KQ table ( mada char(10), tenda char(100), sotp int ) AS Begin insert into @KQ(tenda,sotp) select a.tenda, a.tenda, ( select count(b.mada) from Du_an b, Phan_cong c, Phong_ban d where b.mada=c.mada and c.manv=d.matp and b.mada=a.mada group by b.mada ) from Du_an a update @KQ set sotp=0 where sotp is null return End - Viết câu trvấn

select tenda from Cau14() a, Du_an b, Phan_cong c where a.mada=b.mada and b.ngayketthuc<=getdate() and a.sotp=0 and b.mada=c.mada group by tenda having count(tenda)>=5 Câu 15: LKê các d.án mà nhân viên thgia d.án này ở trong các phòng khác nhau. - Viết hàm trả về số nhân viên của các d.án Create function Cau15a() returns @KQ table ( mada char(10), sonv int ) AS Begin insert into @KQ(mada,sonv) select a.mada,( select count(b.mada) from Du_an b, Phan_cong c where b.mada=c.mada and b.mada=a.mada group by b.mada ) from Du_an a update @KQ set sonv=0 where sonv is null return End - Viết hàm trả về số các phòng ban khác nhau của các d.án create function Cau15b() returns @KQ table ( mada char(10), sopb int ) AS Begin insert into @KQ(mada,sopb) select a.mada,( select count(e.mapb) from Du_an b, Phan_cong c, Nhan_vien d, Phong_ban e where b.mada=c.mada and c.manv = d.manv and d.mapb = e.mapb and b.mada=a.mada group by e.mapb ) from Du_an a update @KQ set sopb=0 where sopb is null return End - Viết câu truy vấn Select a.mada from Cau15a() a, Cau15b() b where a.mada=b.mada and a.sonv=b.sopb Câu 16: LKê các khhàng chỉ có 1 d.án và dự án này đã hoàn thành và số nhvien thgia >= 5 select makh from Du_an a where a.ngayketthuc <= getdate() and makh not in ( select makh from Du_an where ngayketthuc > getdate()

) and (select count(manv) from Du_an b, Phan_cong c where b.mada=c.mada and b.mada=a.mada)>=5 group by makh having count(makh)=1 Câu 17: Lkê ít nhất là khách hàng có số d.án hoàn thành trong tháng này. select makh from Du_an where month(ngayketthuc)=month(getdate()) and year(ngayketthuc)=year(getdate()) group by makh having count(makh)>=3 Câu 18: Hãy lkê: tên nhviên, số d.án thgia, tổng số ngày hoàn thành. select a.tennv, count(distinct b.mada),(cast(day(c.ngaybatdau)as int)-cast(day(c.ngayketthuc)as int ) +1)from Nhan_vien a inner join Phan_cong b on a.manv =b.manv inner join Du_an c on b.mada = c.mada group by a.tennv,b.mada,c.ngaybatdau,c.ngayketthuc

THỰC PHẨM NHÀ BẾP Câu 1: Viết Trigger đbảo chỉ xuất các lô hàng có số lượng còn lại trong kho. Create Trigger Cau1 on Chi_tiet_xuat for insert, update as if exists (select * from Inserted where malo in (select matp from Lo_hang l inner join Chi_tiet_xuat c on l.malo = c.malo where c.soluong_xuat > l.soluong_nhap) ) begin raiserror ('ton kho am',16,1) rollback tran end Câu 2: Viết Trigger đbảo chỉ cho xuất các lô hàng còn hạn sử dụng. Create Trigger Cau on Chi_tiet_xuat for insert, update as if exists (select * from Inserted where malo in (select matp from Lo_hang where (getdate() - ngaynhap) > songay_sudung) ) begin raiserror ('thuc pham qua han',16,1) rollback tran end Câu 3: Viết Trigger đbảo trong một ngày , một loại sản phẩm số lượng xuất ko quá 10. Create Trigger Cau3 on Xuat_nau for insert, update as declare @ngay datetime declare @count int select @count = count(distinct maxuat) from Inserted where ngayxuat =@ngay if (@count >0) begin if exists (select * from Inserted where maxuat in (select distinct l.matp from Lo_hang l inner join Chi_tiet_xuat c on l.malo = c.malo where c.soluong_xuat >10 group by matp having count(distinct matp) =1) ) begin raiserror ('so luong xuat phai la 10 tp',16,1) rollback tran end

end Câu 4: Viết Trigger đbảo ứng với mỗi lô sản phẩm ko đc xuất quá 2 lần. Create trigger cau4 on Lo_hang for insert, update as if exists (select * from Inserted i where i.malo in (select ct.malo from Chi_tiet_xuat ct, Lo_hang h where h.malo =ct.malo group by ct.malo having count(ct.malo) >2) ) begin raiserror ('khong xuat qua 2 lan',16,1) rollback tran end Câu 5: Viết Trigger đbảo tổng số lượng trên phiếu xuất ko quá 10. Create trigger cau5 on Chi_tiet_xuat for insert, update as declare @soluong int select @soluong=sum(soluong_xuat) from Chi_tiet_xuat group by maxuat if exists ( select * from Inserted i inner join Chi_tiet_xuat ct on i.maxuat=ct.maxuat where (@soluong+i.soluong_xuat) >10 ) begin raiserror ('so luong xuat khong duoc qua 10',16,1) rollback tran end Câu 6: Viết Trigger đbảo ngày xuất phải lớn hơn hoặc bằng ngày nhập. Create trigger cau6 on Xuat_nau for insert, update as declare @ngaynhap datetime select @ngaynhap=ngaynhap from Lo_hang if exists ( select * from Inserted i,Chi_tiet_xuat ct,Lo_hang l where i.maxuat=ct.maxuat and l.malo=ct.malo and ngayxuat<@ngaynhap ) begin

raiserror ('ngay xuat phai lon hon hoac bang ngay nhap',16,1) rollback tran end Câu 7: Liệt kê tên thực phẩm đã hết hạn sử dụng và số lượng còn lại trong kho > 0 Select t.matp,t.tenthucpham ,soluong_conlai=(sum(soluong_nhap)- sum(soluong_xuat)) from Thuc_pham t,Lo_hang l,Chi_tiet_xuat ct where t.matp=l.matp and l.malo=ct.malo and (getdate()- ngaynhap)>songay_sudung group by t.matp,t.tenthucpham Câu 8: Liệt kê tên các sản phẩm số lượng còn lại trong kho >= 10 và nhập cách đây 2 ngày và thực phẩm đó chưa hết hạn sử dụng. Select t.matp,t.tenthucpham ,soluong_conlai=(sum(soluong_nhap)-sum(soluong_xuat)) from Thuc_pham t,Lo_hang l,Chi_tiet_xuat ct where t.matp=l.matp and l.malo=ct.malo and (getdate()- ngaynhap)< songay_sudung and (getdate()- ngaynhap)=2 group by t.matp,t.tenthucpham having (sum(soluong_nhap)-sum(soluong_xuat))>=10 Câu 9: Cho biết tên sản phẩm xuất ở lô có số lượng nhiều nhất được nhập trong ngày. Select t.matp,t.tenthucpham, max(soluong_xuat) from Thuc_pham t,Lo_hang l,Chi_tiet_xuat ct where t.matp=l.matp and l.malo=ct.malo and ngaynhap = getdate () group by t.matp,t.tenthucpham Câu 10: Cho biết tên thực phẩm ở những lô đã hết hạn sdụng nhưng chưa xuất lần nào. Select t.matp, tenthucpham from Thuc_pham t, Lo_hang h ,Chi_tiet_xuat ct where t.matp = h.matp and ct.malo= h.malo and getdate() - ngaynhap >songay_sudung and h.malo not in (select malo from Chi_tiet_xuat ) Câu 11: Hãy lkê: tên thphẩm, tên loại, slượng nhập, slượng xuất, slượng còn lại. (trong tháng hiện tại). Create function dbo.Tonkhohientai(@ngay int, @thang int, @nam int) returns @TonKho table ( tentp char (50), malh char (5), sln int, slx int, slt int ) as begin insert into @TonKho(tentp,malh,sln,slx) select a.tenthucpham,b.maloai, (select sum(c.soluong_nhap) from Lo_hang c where day(c.ngaynhap) < @ngay and month(c.ngaynhap)= @thang and year(c.ngaynhap)=@nam), (select sum(d.soluong_xuat) from Chi_tiet_xuat d, Xuat_nau e where d.maxuat = e.maxuat and day(e.ngayxuat)<@ngay and month(e.ngayxuat)= @thang and year(e.ngayxuat)=@nam) from Thuc_pham a inner join Loai_thuc_pham b on a.maloai = b.maloai

update @TonKho set slt = sln - slx return end Câu 12: Hãy lkê các thphẩm đã hhạn sdụng: tên thphẩm, slượng nhập, slxuất, slượng còn lại Select t.matp, tenthucpham, soluong_nhap,soluong_xuat, SLT = soluong_nhap - soluong_xuat from Thuc_pham t, Lo_hang h ,Chi_tiet_xuat ct where t.matp = h.matp and ct.malo= h.malo and getdate() - ngaynhap >songay_sudung

QUANLYTOUR Câu 1: Viết Trigger đảm bảo một xe không thể xếp cho 2 lịch trình trùng thời điểm drop view Xe_Lichtrinh create view Xe_Lichtrinh as select distinct p.maxe,l.ngaydi,l.ngayve from Xe as x, Lich_trinh as l,Phan_cong as p where x.maxe=p.maxe and l.malich=p.malich go drop trigger Xe_phancong go create trigger Xe_phancong on Phan_cong for insert as begin if exists( Select distinct t2.maxe from Xe as x,Lich_trinh as l,inserted as t2 where x.maxe=t2.maxe and l.malich=t2.malich and l.ngaydi in(select x1.ngaydi from Xe_Lichtrinh as x1,inserted as t2 where x1.maxe=t2.maxe) and l.ngayve in(select x1.ngayve from Xe_Lichtrinh as x1,inserted as t2 where x1.maxe=t2.maxe) ) begin Print 'Không thể chèn được' rollback tran end end go insert into Phan_cong(malich,maxe,matx) values (2,3,1) go Câu 2: Viết Trigger đảm bảo một tài xế không thể xếp cho 2 lịch trình trùng thời điểm drop view TaiXe_Lichtrinh

create view TaiXe_Lichtrinh as select distinct p.matx,l.ngaydi,l.ngayve from Tai_xe as t, Lich_trinh as l,Phan_cong as p where t.matx=p.matx and l.malich=p.malich go select * from TaiXe_Lichtrinh go drop trigger TaiXe_phancong go create trigger TaiXe_phancong on Phan_cong for insert as begin if exists( Select distinct t2.matx from Tai_xe as t,Lich_trinh as l,inserted as t2 where t.matx=t2.matx and l.malich=t2.malich and l.ngaydi in(select x1.ngaydi from TaiXe_Lichtrinh as x1,inserted as t2 where x1.matx=t2.matx) and l.ngayve in(select x1.ngayve from TaiXe_Lichtrinh as x1,inserted as t2 where x1.matx=t2.matx) ) begin Print 'Không thể chèn được' rollback tran end end go insert into Phan_cong(malich,maxe,matx) values (2,3,1) go Câu 3: Viết Trigger đảm bảo chỉ phân công tài xế cho các lịch trình mà tp xuất phát trùng với tp của tài xế drop trigger TP_Phancong create trigger TP_Phancong on Phan_cong for insert as begin if exists (select t.matx from Tai_xe as t,inserted as t2 where t.matx=t2.matx) begin declare @matp nchar(10) select @matp=(select t.matp from inserted as t2,Tai_xe as t where t.matx=t2.matx) declare @matp_di nchar(10)

select @matp_di=(select l.matp_di from inserted as t2,Lich_trinh as l where l.malich=t2.malich) if(@matp_di <> @matp) begin Print 'Lịch trình không thỏa' Rollback tran end end end insert into Phan_cong(malich,maxe,matx) values (1,2,3) go Câu 4: Viết Trigger đảm bảo với các lịch trình có kc thời gian đi về >=3 ngày phải do các xe có số ghế ngồi >=20 và tài xế đi lịch trình đó phải có tp trùng với tp xuất phát drop trigger LT_Phancong create trigger LT_Phancong on Phan_cong for insert as begin if exists (select t2.* from Lich_trinh as l,Inserted as t2 where l.malich=t2.malich and datediff(d,l.ngaydi,l.ngayve)>=3) begin declare @soghe int select @soghe=(Select soghe from Xe as x,Inserted as t2 where x.maxe=t2.maxe) if(@soghe <20) begin Print'Lịch trình này phải do các xe có số ghế ngồi >=20' Rollback tran end declare @matp nchar(10) select @matp=(select t.matp from inserted as t2,Tai_xe as t where t.matx=t2.matx) declare @matp_di nchar(10) select @matp_di=(select l.matp_di from inserted as t2,Lich_trinh as l where l.malich=t2.malich) if(@matp_di <> @matp) begin Print 'Lịch trình này tài xế phải có tp trùng với tp đi' Rollback tran end end end go insert into Phan_cong(malich,maxe,matx) values (2,2,2) go

Câu 5: Viết Trigger đảm bảo với các lịch trình có kc thời gian đi về <=3 ngày thì ko có quá 3 xe và 3 tài xế cho lịch trình đó drop trigger LT1_Phancong create trigger LT1_Phancong on Phan_cong for insert as begin if exists (select l.malich from Lich_trinh as l,Inserted as t2 where l.malich=t2.malich and datediff(d,l.ngaydi,l.ngayve)<=3) begin declare @somaxe int select @somaxe=(Select count(distinct p.maxe) from Inserted as t2,Phan_cong as p where p.malich=t2.malich) if(@somaxe >3) begin Print'Lịch trình này không quá 3 xe' Rollback tran end declare @sotaixe int select @sotaixe=(select count(distinct p.matx) from inserted as t2,Phan_cong as p where p.malich=t2.malich) if(@sotaixe >3) begin Print 'Lịch trình này số tài xế không quá 3' Rollback tran end end end go insert into Phan_cong(malich,maxe,matx) values (2,1,4) go Câu 6: Liệt kê tên tài xế đi các lịch trình có khoảng cách thời gian >=3 ngày lái các xe có số chỗ >=20,tp của txế đó trùng với tp đến Select t.tentx from ((Tai_xe as t inner join Phan_cong as p on t.matx=p.matx) inner join Lich_trinh as l on p.malich=l.malich) inner join Xe as x on p.maxe=x.maxe where datediff(d,l.ngaydi,l.ngayve)>=3 and x.soghe>=20 and t.matp=l.matp_den Câu 7: Hãy tổng kết :tên txế,số lịch trình đã đi,số xe đã lái Select t.tentx,count(distinct p.malich) as SOLT,count (distinct maxe) as SOXE from Tai_xe as t inner join Phan_cong as p on t.matx=p.matx

group by t.tentx Câu 9: Viết trigger đảm bảo một tài xế được phân công cho 1 lịch trình thì chỉ khi kết thúc lịch trình đó mới được phân công cho lịch trình khác create view PC as select t.matx,p.malich,l.ngaydi,l.ngayve from Tai_xe as t,Phan_cong as p,Lich_trinh as l where t.matx=p.matx and p.malich=l.malich Select * from PC drop trigger PC_TX create trigger PC_TX on Phan_cong for insert as if not exists (Select * from Lich_trinh as l,inserted as i,PC as v where i.malich=l.malich and v.matx=i.matx and datediff(d,v.ngayve,l.ngaydi)>0 ) begin Print'Tai xe nay chua ve' rollback tran end go Câu 10: Liệt kê tên các tài xế chỉ đi các lịch trình có kc thời gian >=3 ngày lịch trình này sử dụng ít nhất 2 xe có số ghế >=20 create view Q1 as Select p.* from Phan_cong as p,Lich_trinh as l where l.malich=p.malich and datediff(d,l.ngaydi,l.ngayve)>=3 go select * from Q1 go create view Q2 as select malich,matx,maxe from Q1 Group by malich,matx,maxe Having maxe in(select maxe from Xe where soghe>=20) go Select * from Q2 create view Q3 as

Select malich,matx,count(distinct maxe)as TSX from Q2 Group by malich,matx Having count(distinct maxe)>=2 select t.tentx from Tai_xe as t,Q3 where Q3.matx=t.matx

QUANLYHOKHAU Câu 1: Viết trigger đảm bảo 1 công dân chỉ có 1 hộ khẩu drop trigger CD_ChiTiêt Create trigger CD_ChiTiêt on Chi_tiet_ho_khau for insert as if exists (Select a.masohk from Ho_khau as a,Cong_dan as c,inserted as b where c.masocmnd=b.masocmnd and a.masohk=b.masohk) begin Print'1 công dân chỉ có 1 hộ khẩu' Rollback tran end go insert into Chi_tiet_ho_khau (masohk,masocmnd,mavaitro) values(3,345678,2) go Câu 2: Viết trigger đảm bảo 1 hộ khẩu chỉ chứa các công dân có cùng địa chỉ với hộ khẩu đó drop trigger HK_ChiTiet create trigger HK_ChiTiet on Chi_tiet_ho_khau for insert as if not exists (Select * from Ho_khau as a,Cong_dan as d,inserted as c where d.madc=a.madc_hk and c.masohk=a.masohk and c.masocmnd=d.masocmnd) begin Print ' Hộ khẩu chỉ chứa công dân có cùng dc' Rollback tran end go insert into Chi_tiet_ho_khau (masohk,masocmnd,mavaitro) values(1,389760,2) go Câu 3: Viết trigger đảm bảo 1 hộ khẩu chỉ cho phép có tối đa 3 dc của các công dân trong hk đó khác nhau drop trigger HK1_Chitiet create trigger HK1_Chitiet on Chi_tiet_ho_khau for insert as if exists(Select c.masohk from Cong_dan as b,inserted as c where b.masocmnd=c.masocmnd group by c.masohk having count(distinct b.madc)>3 ) begin Print N'Hộ khẩu chỉ cho phép tối đa 3 địa chỉ của công dân trong hộ khẩu đó khác nhau'

Rollback tran end go insert into Chi_tiet_ho_khau (masohk,masocmnd,mavaitro) values(1,389760,2) go Câu 4: Viết trigger đảm bảo các vai trò trong hộ khẩu không quá 5 create trigger VT_CT on Chi_tiet_ho_khau for insert as if not exists (Select a.masohk from Ho_khau as a,inserted as b where b.masohk=a.masohk and b.mavaitro in(Select b.mavaitro from Ho_khau as c where c.masohk=b.masohk)) Begin if(Select count(distinct a.mavaitro) from inserted as a,Ho_khau as b where b.masohk=a.masohk) >5 begin Print 'Các vai trò trong hk không quá 5' Rollback tran end end go insert into Chi_tiet_ho_khau (masohk,masocmnd,mavaitro) values('1','389760','3') go Câu 5: Tìm những hộ khẩu mà dc của hộ khẩu trùng với dc của tất cả các thành viên trong hộ khẩu đó Select masohk from Ho_khau where masohk not in (Select b.masohk from Cong_dan as a,Chi_tiet_ho_khau as b,Ho_khau as c where b.masocmnd=a.masocmnd and b.masohk=c.masohk and a.madc <> c.madc_hk) Câu 6: Tìm những hộ khẩu mà dc hk ko trùng với bất kỳ dc nào của các thành viên select masohk from Ho_khau where masohk not in (Select b.masohk from Cong_dan as a,Chi_tiet_ho_khau as b,Ho_khau as c where b.masocmnd=a.masocmnd and b.masohk=c.masohk and a.madc = c.madc_hk) Câu 7:Tìm những hộ khẩu mà tất cả các thành viên trong hk đó có tuổi >18 select masohk

from Ho_khau where masohk not in (Select b.masohk from Cong_dan as c,Chi_tiet_ho_khau as b,Ho_khau as a where c.masocmnd=b.masocmnd and b.masohk=a.masohk and datediff(d,ngaysinh,getdate())<=18) Câu 8: Liệt kê các họ tên trong các hộ khẩu có số thành viên>=5 Select a.hoten,b.masohk from Cong_dan as a,Ho_khau as b,Chi_tiet_ho_khau as c where b.masohk=c.masohk and a.masocmnd=c.masocmnd group by a.hoten,b.masohk having count(c.masohk)>=5 Câu 9: Liệt kê hộ khẩu có số vai trò trùng nhau >=3 Select a.masohk,b.mavaitro from Ho_khau as a,Chi_tiet_ho_khau as b,Cong_dan as c where a.masohk=b.masohk and b.masocmnd=c.masocmnd group by a.masohk,b.mavaitro having count(mavaitro)>=3 Câu 11: Hãy tổng kết:masohk,số thành viên,số dc khác nhau trong hk,số vai trò khác nhau select a.masohk,count(distinct c.masocmnd)as STV,count(distinct c.madc) as SDC,count(distinct b.mavaitro)as SVT from Ho_khau as a,Chi_tiet_ho_khau as b,Cong_dan as c where a.masohk=b.masohk and c.masocmnd=b.masocmnd group by a.masohk

Related Documents

Co So Du Lieu (thi)
November 2019 12
Co So Du Lieu
November 2019 16
Co So Du Lieu
May 2020 14
Co So Du Lieu Phan Tan
November 2019 7