You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+28Lines changed: 28 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -139,6 +139,10 @@ Diese Rekursion ist so auch in den SQL-Model-Klassen und der Datenbank abgebilde
139
139
Dieses Paket liefert eine Hilfsfunktion, die die AHBs wieder "flach" zieht, sodass die Datenstruktur mit den flachen AHBs aus bspw. den PDF-Dateien vergleichbar ist, ohne jedoch die Strukturinformationen zu verlieren.
140
140
Dazu wird eine rekursive Common Table Expression (CTE) verwendet, um eine zusätzliche Hilfstabelle `ahb_hierarchy_materialized` zu befüllen.
141
141
142
+
Die Möglichkeiten einer solchen AHB-Datenbank mit Strukturinformationen (die es in der Form in den PDF-AHBs nicht gibt) schafft viele denkbare Anwendungen.
143
+
Was wenn man die Datenbank als Grundlage nähme, um eine Frontend für AHBs zu bauen, das bequemer nutzbar ist als PDFs mit mehr als 1000 Seiten in denen man nur schlecht suchen kann? Das gibt es: [ahbesser](https://github.com/Hochfrequenz/ahbesser) aka [AHB-Tabellen](https://ahb-tabellen.hochfrequenz.de/).
144
+
Was wenn man die Datenbank als Grundlage nähme, um ein Frontend zu bauen, das AHBs in verschiedenen Versionen vergleicht und einen lesbaren Diff erzeugt der anders als die Änderungshistorie der PDFs sogar vollständig ist? Das gibt es: [ahlbatross](https://github.com/Hochfrequenz/ahlbatross).
145
+
142
146
```python
143
147
# pip install fundamend[sqlmodel]
144
148
from pathlib import Path
@@ -201,6 +205,30 @@ ORDER BY sort_path;
201
205
...
202
206
</details>
203
207
208
+
<details>
209
+
<summary>Finde heraus, welche Zeilen in einem Prüfidentifikator zwischen zwei Versionen hinzukommen</summary>
210
+
<br>
211
+
212
+
```sql
213
+
with fv2504 as (SELECT *
214
+
FROM ahb_hierarchy_materialized
215
+
WHERE pruefidentifikator = '55014'
216
+
and edifact_format_version = 'FV2504'
217
+
ORDER BY sort_path ASC),
218
+
fv2410 as (SELECT *
219
+
FROM ahb_hierarchy_materialized
220
+
WHERE pruefidentifikator = '55014'
221
+
and edifact_format_version = 'FV2410'
222
+
ORDER BY sort_path ASC)
223
+
SELECT fv2504.path
224
+
FROM fv2504
225
+
LEFT JOIN fv2410 on fv2504.id_path = fv2410.id_path
226
+
WHERE fv2410.id is null -- alle zeilen, die so im fv2410 ahb nicht vorhanden waren
0 commit comments