我有下表:
id date1 score1 date2 score2
1 today 80 today 88
1 yesterday 90 yesterday 92
问题在于我需要将2行合并为一行,而在每列中将选择突出显示的值,在date1上,最新日期跟随匹配得分1,与date2和得分2完全相反。 / p>
答案 0 :(得分:0)
如果我理解清楚,那是你的期望吗?
SELECT t1.ID,t1.DATE1,t1.score1,t2.DATE2,t2.score2
FROM T t1
INNER JOIN T t2 ON t1.id = t2.id AND DATEADD(DAY,1,t2.DATE2) = t1.DATE1
OR
在您的问题中,您可能就像这个查询一样。
SELECT t1.ID,t1.DATE1,t1.score1,t2.DATE2,t2.score2
FROM T t1
INNER JOIN T t2 ON t1.id = t2.id
WHERE t1.date2 = 'today' and t2.date2 = 'yesterday'
答案 1 :(得分:0)
select t1.date1,t1.score1,t2.date2,t2.score2
from yourTable t1
cross join yourTable t2
where t1.date1 like 'today' and t2.date2='yesterday'
如果您将date1和date2存储为字符串'今天'和'昨天'