![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() Registriert seit: 15.11.2000
Beiträge: 211
|
![]() Hallo,
hat vielleicht einer von euch eine Idee dazu? Gegeben sei eine Tabelle, die folgendermaßen aussieht: create table gdwh_columns ( table_name varchar(30) not null, column_name varchar(30) not null ) Records darin sehen folgendermaßen aus: table_name (column_name) TB0_ACCOUNT (ACCOUNT_ID) TB0_ACCOUNT (UNID) TB0_ACCOUNT (REF_ACCOUNT_ID) TB0_ACCOUNT (ACCOUNT_TYPE) TB0_ACCOUNT (PRODUCT_TYPE_SUBTYPE) TB0_CURRENCY_MARKET (UNID) TB0_CURRENCY_MARKET (UNID) TB0_CURRENCY_MARKET (CURRENCY_MARKET_DESCRIPTION) TB0_CURRENCY_MARKET (CURRENCY_MARKET_ID) und so weiter. Jetzt brauche ich ein SQL, dass mir die Inhalte der column_name Spalte zerlegt und eine Zählung der Teile vornimmt. Also, das Ergebnis sollte so aussehen: part count(*) ACCOUNT 3 UNID 3 ID 3 REF 1 TYPE 2 SUBTYPE 1 CURRENCY 2 MARKET 2 DESCRIPTION 1 Die Anzahl der Attribute in der Tabelle sind etwa 8000, Trennzeichen zum aufsplitten ist immer der "_" (Underscore). Hintergrund ist, dass ich ein Abkürzungsverzeichnis, bzw. ein Glossary anlegen will, an dem man sich für neue Felder orientieren kann. |
![]() |
![]() |
![]() |
#2 |
Master
![]() |
![]() Hallo Bizeps!
Ich versteh Dein Beispiel nicht ... Erklär mir mal bitte warum TB0_ACCOUNT (ACCOUNT_ID) das hier ACCOUNT 3 ergeben soll ... Ich checks nicht ... LG Joerg |
![]() |
![]() |
![]() |
#3 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() Mir fällt zwar für die DBs, die ich kenn, keine Variante ein, aber es
fragt sich natürlich welche Datenbank du verwendest? @Joerg: Er will die Spaltennamen nach _ aufsplitten (dh. ACCOUNT_ID gibt Wert ACCOUNT und ID) und dann die Anzahl der gesplitten Werte ermitteln. (Dh. wie oft kommt ACCOUNT, wie oft ID, wie oft UNID, usw. vor). |
![]() |
![]() |
![]() |
#4 |
Inventar
![]() Registriert seit: 13.06.2001
Beiträge: 1.830
|
![]() Was spricht dagegen das in der Programmiersprache deiner Wahl zu erledigen? In php geht das z.B. mit explode() sehr flott, und ich vermute das es auch in anderen Sprachen einfach geht.
In php: Code:
$stringcounts = array; //die daten aus der db holen und eine schleife darüber while($row = ...){ $parts = explode('_', $row[0]) foreach($parts as $idstr){ if(isset($stringcounts[$idstr])) $stringcounts[$idstr] ++; else $stringcounts[$idstr] = 1; } } print_r($stringcounts[$idstr]);
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona) Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing. \"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra) |
![]() |
![]() |
![]() |
#5 | |
Master
![]() |
![]() Zitat:
Für die mir bekannen SQL Dialekte sehr ich da ebenfalls keine Chance ... LG Joerg |
|
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|