我有3个表正在跟随::
村
Village_ID Village_Name 446261 परसठ्ठी 446262 बम्हनी 446263 लाफिनखुर्द 446264 सोरम 446265 सिधीं
Anganbadi_Master
Anganbadi_ID Anganbadi_Name Village_ID
1307 चिंगरौद 446260
1308 चिगरौद-2 446260
1309 बम्हनी-1 446262
1310 बम्हनी-2 446262
1311 बम्हनी-3 446262
1312 लाफिनखुर्द-1 446263
1313 लाफिनखुर्द-2 446263
Anganbadi
Anganbadi_ID Food Month Year
1179 हाँ 5 2013
1309 हाँ 1 2013
1309 नहीं 1 2014
1309 हाँ 2 2013
1310 हाँ 1 2013
1310 हाँ 2 2013
1310 हाँ 3 2013
1311 नहीं 3 2013
2032 हाँ 3 2013
现在我想在两个不同年份的基础上两次检索食物专栏,其中同一个月的不同年份必须只出现一次,如下:
Anganbadi_ID Month food(2013) food(2014)
1309 1 हाँ नहीं
1309 2 हाँ NULL
1310 1 हाँ NULL
1310 2 हाँ NULL
1310 3 हाँ NULL
1311 3 नहीं NULL
但是,当我尝试这段代码时
SELECT DISTINCT Anganbadi.Anganbadi_ID
, Anganbadi.Month
, Anganbadi.Food AS food2013
, NULL AS Food2014
FROM Anganbadi
INNER JOIN Anganbadi_Master ON Anganbadi.Anganbadi_ID = Anganbadi_Master.Anganbadi_ID
INNER JOIN Village ON Anganbadi_Master.Village_ID = Village.Village_ID
WHERE (Anganbadi.Year = 2013)
AND (Anganbadi_Master.Village_ID = 446262)
UNION ALL
SELECT Anganbadi_1.Anganbadi_ID
, Anganbadi_1.Month
, NULL AS food2013
, Anganbadi_1.Food AS Food2014
FROM Anganbadi AS Anganbadi_1
INNER JOIN Anganbadi_Master AS Anganbadi_Master_1 ON Anganbadi_1.Anganbadi_ID =
Anganbadi_Master_1.Anganbadi_ID
INNER JOIN Village AS Village_1 ON Anganbadi_Master_1.Village_ID =
Village_1.Village_ID
WHERE (Anganbadi_1.Year = 2014)
AND (Anganbadi_Master_1.Village_ID = 446262)
它显示以下结果::
Anganbadi_ID Month food(2013) food(2014) 1309 1 हाँ NULL 1309 2 हाँ NULL 1310 1 हाँ NULL 1310 2 हाँ NULL 1310 3 हाँ NULL 1311 3 नहीं NULL 1309 1 NULL नहीं
此处Anganbadi_ID 1309显示同一个月(1)(2013年和2014年)的两个不同行
答案 0 :(得分:0)
试试这个:
SELECT *
FROM Anganbadi
PIVOT
(
MAX(food)
FOR [year] IN([2013],[2014])
) AS p
| ANGANBADI_ID | MONTH | 2013 | 2014 |
----------------------------------------
| 1309 | 1 | हाँ | नहीं |
| 1310 | 1 | हाँ | (null) |
| 1309 | 2 | हाँ | (null) |
| 1310 | 2 | हाँ | (null) |
| 1310 | 3 | हाँ | (null) |
| 1311 | 3 | नहीं | (null) |
| 2032 | 3 | हाँ | (null) |
| 1179 | 5 | हाँ | (null) |