Ich habe eine Datentabelle mit 1.6M Zeilen. Diese Datentabelle wurde durch Verketten vieler kleinerer Datentabellen gebildet. Leider weisen diese kleineren Datentabellen in vielen Spalten Lücken auf. Es werden zum Beispiel mehrere tausend Zeilen am selben Datum geschrieben, aber Datum und Zeitstempel werden nur in der obersten Zeile der kleineren Datentabelle ausgefüllt. Das bedeutet, dass ich eine Datentabelle habe, in der das Datumsfeld nur alle 9.000 bis 12.000 Zeilen ausgefüllt ist, wobei alles dazwischen leer ist.
Ist es möglich, eine intelligente Füllung zu verwenden, bei der leere Zeilen mit einem Wert gefüllt werden, bis eine nicht leere Zeile erreicht ist, und anschließend nachfolgende Zeilen mit diesem neuen Wert gefüllt werden? Es würde eine Ewigkeit dauern, um dies manuell mit dem beschissenen Zeilenbefehl für jeden Stapel von 10.000 Zeilen in meiner 1,6 Millionen Zeilen langen Datentabelle zu tun.
WIE SIEHT ES JETZT AUS:
| Reihe # | Datum | Sache ID | Daten 1 | Daten 2 |
| 1 | 8. März 2013 | X001 | Attr.1 | Color.3 |
| 2 | | | Attr.2 | Color.2 |
| ... | | | ... | ... |
9653 | | | Attr.9653 | Color.9653 |
9,654 | 21. März 2013 | X002 | Attr1 | Color.1 |
| 9,655 | | | Attr.2 | Color.2 |
| ... | | | ... | ... |
| 19,630 | | | Attr.9975 | Farbe.9975 |
| 19,631 | 30. März 2013 | X003 | Attr.1 | Color.1 |
| 19,632 | | | Attr.2 | Color.2 |
| .. | | | ... | ... |
WIE MÖCHTE ICH AUSSEHEN:
| Reihe # | Datum | Sache ID | Daten 1 | Daten 2 |
| 1 | 8. März 2013 | X001 | Attr.1 | Color.3 |
| 2 | 8. März 2013 | X001 | Attr.2 | Color.2 |
| ... | 8. März 2013 | X001 | ... | ... |
9653 | 8. März 2013 | X001 | Attr.9653 | Color.9653 |
9,654 | 21. März 2013 | X002 | Attr1 | Color.1 |
| 9,655 | 21. März 2013 | X002 | Attr.2 | Color.2 |
| ... | 21. März 2013 | X002 | ... | ... |
| 19,630 | 21. März 2013 | X002 | Attr.9975 | Farbe.9975 |
| 19,631 | 30. März 2013 | X003 | Attr.1 | Color.1 |
| 19,632 | 30. März 2013 | X003 | Attr.2 | Color.2 |
| .. | 30. März 2013 | X003 | ... | ... |
Hier ist ein einfaches Skript, das den Trick macht
Names Default To Here( 1 );
dt = Current Data Table();
// for example I will call the column in question, "date"
For Each Row(
If( Is Missing( :date ) == 1,
:date = Lag( :date )
)
);