尽管有多个ID,但在一个上显示不同的字段

时间:2015-06-12 09:26:39

标签: sql sql-server sql-server-2008 tsql

表格如下所示:

CountryId   CountryName    MemberType
143           AUT                1
171           AUT                2
202           AUT                3
206           BE                 1

这是我运行查询时得到的结果:

CountryName   IsType1   IsType2
   AUT          Y          N
   AUT          N          Y
   AUT          N          N
   BE           Y          N

我的问题是我希望它只显示每个国家/地区名称一行。如果它是type1和类型2,那么每个CountryName都有多个CountryId,所以我不知道该怎么做。

这就是我想要的:

CountryName   IsType1   IsType2
AUT             Y          Y
BE              Y          N

这就是我的代码:

SELECT 
 CountryName=c.CountryCode_ISO3166
,IsType1=CASE WHEN cm.CountryMemberTypeId = 1 then 'Y' else 'N' end
,IsType2=CASE WHEN cm.CountryMemberTypeId = 2 then 'Y' else 'N' end


FROM static.Country c
inner JOIN static.CountryMemberOfType cmem ON C.CountryId = cmem.CountryId
inner join static.CountryMemberType cm on cm.CountryMemberTypeId=cmem.CountryMemberTypeId
order by CountryCode_ISO3166

1 个答案:

答案 0 :(得分:0)

使用条件聚合:

<?php 
define('DB_HOST', 'localhost'); 
define('DB_NAME', 'vinod'); 
define('DB_USER','vinod'); 
define('DB_PASSWORD','vinod1'); 
$con= mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysqli_error()); 
$db= mysqli_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysqli_error()); 
/ $ID = $_POST['username']; $Password = $_POST['password']; /
 function SignIn()
 { 
session_start(); //starting the session for user profile page 
if(!empty($_POST['username'])) //checking the 'user' name which is from Sign-In.html, is it empty or have some text
{ 
$query = mysqli_query("SELECT * FROM login where UserName = '$_POST[username]' AND pass = '$_POST[password]'") or die(mysqli_error()); 
$row = mysqli_fetch_array($query) or die(mysqli_connect_error()); 
if(!empty($row['UserName']) AND !empty($row['password'])) 
{ 
 $_SESSION['UserName'] = $row['password']; 
 header('Location: rms_app.html'); 
} 
else
 { 
  header('Location: welcomepage.html'); 
} 
} 
} 
if(isset($_POST['login'])) 
{ 
SignIn(); 
} 
?>