仅读取具有值的列 + 同一列中的打印日期(复杂)



这是你的大脑咬:D

的东西

我自己无法解决这个问题。我的表与小提琴示例具有相同的原则,但 col1-col32 而不是示例中的 col1-col5。

http://sqlfiddle.com/#!6/6f6da

目标是获得输出:

Apples, 20120104, 9.73
Berries, 20120101, 4.00
Berries, 20120103, 3.50
Bananas, 20120101,2.30
Kiwi, 20120103, 5.55

我知道该表的列名不正确,并且数据存储得很糟糕。我不是在寻求如何更改表格的帮助,我必须按原样处理数据。

感谢您的帮助

它并不像看起来那么复杂:

;with cte as(
Select * from example
unpivot(c for d in([col2],[col3],[col4],[col5]))u
)
select c2.col1, c2.c, c1.c from cte c1
Join cte c2 on c1.d = c2.d
where c1.col1 = 'datum' and c2.col1 <> 'datum' and c2.c <> '0.00'

小提琴 http://sqlfiddle.com/#!6/6f6da/22

最新更新