WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 11.01.2007, 15:14   #1
Bizeps
Veteran
 
Registriert seit: 15.11.2000
Beiträge: 211


Standard tricky SQL

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.
Bizeps ist offline   Mit Zitat antworten
Alt 17.01.2007, 15:10   #2
JoergStueger
Master
 
Registriert seit: 28.10.2002
Alter: 47
Beiträge: 626


JoergStueger eine Nachricht über ICQ schicken
Standard

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
JoergStueger ist offline   Mit Zitat antworten
Alt 18.01.2007, 09:36   #3
T.dot
Master
 
Registriert seit: 13.08.2003
Beiträge: 624


Standard

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).
T.dot ist offline   Mit Zitat antworten
Alt 18.01.2007, 19:20   #4
jak
Inventar
 
Registriert seit: 13.06.2001
Beiträge: 1.830


Standard

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]);
jak
____________________________________
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)
jak ist offline   Mit Zitat antworten
Alt 19.01.2007, 09:03   #5
JoergStueger
Master
 
Registriert seit: 28.10.2002
Alter: 47
Beiträge: 626


JoergStueger eine Nachricht über ICQ schicken
Standard

Zitat:
@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).
OK, jetzt hab ichs .... ;-)

Für die mir bekannen SQL Dialekte sehr ich da ebenfalls keine Chance ...

LG
Joerg
JoergStueger ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:05 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag