Read-only archive. Login and posting are unavailable.
Reply
 
Thread Tools
  #1  
Old 24-10-2019, 13:29
Senior Member
Join Date: 04-2011
Posts: 125
Bài toán SQL

Dear all,
mình đang nghiên cứu bên SQL server. Có vấn đề như thế này. Mình có bảng A và bảng B như hình. Muốn lấy kết quả ở bảng C nhưng đoạn code bên dưới không ra được kết quả mong muốn. Không biết như code bên dưới của mình cần sửa chổ nào để ra được kết quả ở bảng C anh em nhỉ.
Mình cám ơn nhiều

Reply With Quote
  #2  
Old 24-10-2019, 13:34
Member
Join Date: 04-2010
Posts: 40
Re: Bài toán SQL

Sao cai bang C bi du ra 2 row vay?
Reply With Quote
  #3  
Old 24-10-2019, 13:36
Senior Member
Join Date: 04-2011
Posts: 125
Re: Bài toán SQL

Quote:
Originally Posted by quyendn84 View Post
Sao cai bang C bi du ra 2 row vay?
Bảng C là tổng hợp của bảng A và B á bạn
Reply With Quote
  #4  
Old 24-10-2019, 13:41
Senior Member
Join Date: 09-2012
Posts: 1,580
Re: Bài toán SQL

Bạn nói kết quả không mong muốn là sao?
Thử:
SELECT A.namhoc, B.cap, A.lop, B.tongsohocsinh FROM bangA A LEFT JOIN bangB B ON A.namhoc = B.namhoc WHERE A.namhoc = '2019'
__________________
W520, my best friend.
Reply With Quote
  #5  
Old 24-10-2019, 13:41
tanpro90's Avatar
Senior Member
Join Date: 07-2013
Posts: 1,025
Re: Bài toán SQL

rồi sao biết lớp nào của cấp 2 , lớp nào của cấp 1 khi trong bảng a và b k có cột nào quy định
__________________
sáng cắp cặ[COLOR="White"]p[/COLOR] , đi chiều cắp cặ[COLOR="white"]p[/COLOR] về . riết chán quá
Reply With Quote
  #6  
Old 24-10-2019, 13:42
Member
Join Date: 09-2016
Posts: 78
Re: Bài toán SQL

Select * from
(Select [Năm học], (CASE WHEN [Lớp] < 6 THEN 1 ELSE 2 END) as [Cấp], [Lớp], [Tổng số học sinh] from Bảng A
Union
Select [Năm học], [Cấp], [Lớp]='', [Tổng số học sinh] from Bảng B) as Bang C
Reply With Quote
  #7  
Old 24-10-2019, 13:44
tanpro90's Avatar
Senior Member
Join Date: 07-2013
Posts: 1,025
Re: Bài toán SQL

SELECT A.namhoc, case when a.lop in (1,2,3,4) then 1 else 2 as 'CAP',a.lop, B.tongsohocsinh FROM bangA A LEFT JOIN bangB B ON A.namhoc = B.namhoc WHERE A.namhoc = '2019'
__________________
sáng cắp cặ[COLOR="White"]p[/COLOR] , đi chiều cắp cặ[COLOR="white"]p[/COLOR] về . riết chán quá
Reply With Quote
  #8  
Old 24-10-2019, 13:46
DaiSuThichAnMan's Avatar
Senior Member
Join Date: 11-2017
Posts: 2,139
Re: Bài toán SQL

Không có case when làm sao nó ra cấp đc

Sent from Samsung SM-N960U using vozFApp
__________________
Khi lãnh tụ nói về tăng tương tác cho Voz Tân
[QUOTE=fRzzy;156725937]tôi cần đếch, các anh dễ bị kích động bỏ mẹ, đung tí là dỗi, đụng tí là hờn, nhẹ cái là nhảy lên còn bình thường thì hổ báo vãi, nghe cho đăng ký nick mới là cuống lên đòi về nhà trốn =]][/QUOTE]
Reply With Quote
  #9  
Old 24-10-2019, 13:50
Member
Join Date: 04-2010
Posts: 40
Re: Bài toán SQL

thấy có vẻ hơn kỳ kỳ đấy, bạn tham khao xem, có thể mình hiểu sai ý :

sqlfiddle.com/#!18/0d601/1

Code:
SELECT
  nam_hoc, 
  case  when (lop < 6) then 1 else 2 END as cap,
  lop,
  tong_so
FROM
  TableA
Where nam_hoc=2019
  
 union all
 
 SELECT
  nam_hoc,
  cap,
  '' as lop,

  tong_so
FROM
  TableB
Where nam_hoc=2019
Reply With Quote
  #10  
Old 24-10-2019, 13:53
Junior Member
Join Date: 04-2018
Posts: 1
Re: Bài toán SQL

select
namhoc,
case when cap between 1 and 5 then 1
when cap between 6 and 9 then 2
end as cap,
lop,
tongsohocsinh
from
bangA

union all

select
namhoc,
cap,
null as lop,
tongsohocsinh
from
bangB
Reply With Quote
Reply

« Previous Thread | Next Thread »

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


All times are GMT +7. The time now is 12:15.