我有这样的场景。 需要以格式显示类型和金额。 需要帮助
ParamID ProblemID Data FIELDID
1247176 285135 2.Materials 283
1247177 285135 2557.8 284
1247314 285132 2.Materials 283
1247315 285132 2889.1 284
1247320 284848 2.Materials 283
1247321 284848 2202.5 284
1247326 285088 2.Materials 283
1247327 285088 2139 284
1247332 285085 2.Materials 283
1247333 285085 2139 284
1247338 285081 2.Materials 283
1247339 285081 2408 284
1247374 285134 2.Materials 283
1247375 285134 2869 284
1247458 286204 3.Travel 283
1247459 286204 375 284
我希望输出如下
ProblemID Type Amount
285135 2.Materials 2557.8
285132 2.Materials 2889.1
284848 2.Materials 2202.5
285088 2.Materials 2139
285085 2.Materials 2139
285081 2.Materials 2408
285134 2.Materials 2869
286204 3.Travel 375
这就是我试过的
select ProblemID, Data as Type, (select data from table where paramid = paramid+1) as Amount from table where FieldID = 283
答案 0 :(得分:0)
我觉得您在获取列data
下的备用记录时遇到问题。我可以帮助你。
使用以下查询:
select ProblemID,
case
when MOD(ParamID, 2) = 0 then Data
end as Type,
case
when MOD(ParamID, 2) = 1 then Data
end as Amount from table
group by ProblemID
我没有检查它的输出;但它将解决您在具有不同column_names的同一列下获取备用记录的问题。
如果您有任何小的显示问题,那么您必须在这里和那里进行调整:)
答案 1 :(得分:0)
SELECT ProblemID, Data AS Type,
(SELECT Data
FROM table AS t2
WHERE (ProblemID = t1.ProblemID) AND (FIELDID = 284)) AS Amount
FROM table AS t1
WHERE (FIELDID = 283)
GROUP BY ProblemID, Data
在那里,纠正了