我有這樣一個表如下:將尾行作爲一組行的標題行
rfa_yea | rfa_idx | rfa_dsp | rfa_tpr
---------+---------+----------------------------------------------------+---------
2013 | 1 | PIGATO VERM.NO/ROSS/ORMEASCO CL75 | A
2013 | 2 | ESTATE\134134134047 BICCHIERE SING.VERDE | A
2013 | 3 | Rif. Trn. N. 17 del 17/04/2013 Cassa N. 00001 | C
2013 | 4 | BIB.RED BULL LAT.CL25 ENER.DRI | A
2013 | 5 | BIB.RED BULL LAT.CL25 ENER.DRI | A
2013 | 6 | SHOPPER 30X60 MAXI X 1000 | A
2013 | 7 | SHOPPER HD 27X50 MEDIE X 1000 | A
2013 | 8 | PIGATO VERM.NO/ROSS/ORMEASCO CL75 | A
2013 | 9 | * SCONTO SUBTOTALE | A
2013 | 10 | Rif. Trn. N. 19 del 17/04/2013 Cassa N. 00001 | C
註明爲'C'
領域rfa_tpr
的記錄是傳來組行的頭在它之前。我需要到該行地方作爲組行,而不是尾(隔膜)作爲目前的的頭,所以我想要檢索設定像下面這樣的結果:
rfa_yea | rfa_idx | rfa_dsp | rfa_tpr
---------+---------+----------------------------------------------------+---------
2013 | 3 | Rif. Trn. N. 17 del 17/04/2013 Cassa N. 00001 | C
2013 | 1 | PIGATO VERM.NO/ROSS/ORMEASCO CL75 | A
2013 | 2 | ESTATE\134134134047 BICCHIERE SING.VERDE | A
2013 | 10 | Rif. Trn. N. 19 del 17/04/2013 Cassa N. 00001 | C
2013 | 4 | BIB.RED BULL LAT.CL25 ENER.DRI | A
2013 | 5 | BIB.RED BULL LAT.CL25 ENER.DRI | A
2013 | 6 | SHOPPER 30X60 MAXI X 1000 | A
2013 | 7 | SHOPPER HD 27X50 MEDIE X 1000 | A
2013 | 8 | PIGATO VERM.NO/ROSS/ORMEASCO CL75 | A
2013 | 9 | * SCONTO SUBTOTALE | A
是否有解決方案,只有SQL?該解決方案應該適用於這些類型的數據庫服務器:MSSQL,PostgreSQL和MySQL。
注意
我可以有多個分隔符(頁腳)行,而不是隻有兩個作爲例子......
存在各種解決方案,但它們幾乎都非常糟糕。這一點,以及合理處理行的困難,是SQL令人驚訝的困難之一。 –
你是什麼意思「*之前的行組*」?請記住,SQL表沒有固有的順序。您是否以某種方式推斷數據「之前」和「之後」出現的內容,例如從'rfa_idx'的值?在你的表中維護一個包含某種'group_id'的列是明智的。 – eggyal
@eggyal看看我自己的答案,我找到了解決方案! – aleroot