PDA

View Full Version : Sql Abfrage



tarkusch
02-10-12, 06:11
Morgen liebes Forum,

bräuchte bitte wieder mal einen Denkanstoss.

Ich habe da eine Datei wo 6 verschiedene Abteilungen sind.
Der Key ist die Auftragsnummer.
Im Satz ist auch noch die Arbeitszeiten enthalten.

Kann ich die Summen der Arbeitszeiten der 6 Abteilungen je Auftragsnummer mit einem Satz definieren,
oder muss ich das Pgm-technisch lösen?

Gruß

Tarki

andreaspr@aon.at
02-10-12, 07:01
Willst du die Summe der ganzen Tabelle?
Denn wenn Auftragsnummer der einzige Key ist, dann kann es in dieser Tabelle je Auftragsnr. nur einen Satz (Abteilung) geben!
Oder ist der Key Auftragsnr. + Abteilung?
Oder sind es 2 Tabellen?
Ein Beispiel wäre vielleicht hilfreich.

lg Andreas

malzusrex
02-10-12, 07:23
Jetzt mal ohne die Tabelle zu kennen in etwa so



Select Auftrag, Abteilung, Sum(Arbeitszeit)
from MyFile
group by Auftrag, Abteilung
order by Auftrag, Abteilung


Gruß
Ronald

tarkusch
02-10-12, 10:09
Hallo,

Danke Andreas und Roland.

Bin schon mit Codesnipes fleißig am testen.

Gruß

Tarki

tarkusch
05-10-12, 10:29
Hallo,

ich habe in den 3 Dateien die Abteilung 2 mal als nummerischen und 1 mal als Alphanummerisch.

Wie vergleiche ich Sql Alphanumerischen mit Nummerisch Wert?

Gruß

Tarki

Fuerchau
05-10-12, 11:26
Jetzt kommt es auf die Art der Alphadarstellung an (mit oder ohne Vornullen):

Num->Alpha
char(MyNum) <= ohne Vornullen
digits(MyNum) <= mit Vornullen

Alpha->Num
decimal(MyAlpha, n, m)

n = Anzahl Stellen
m = davon Anzahl Nachkomma

Allerdings stirbt SQL wenn kein numerischer Inhalt drinsteht.

malzusrex
05-10-12, 11:27
Durch umwandeln von Alpha in Num oder umgekehrt

Num --> Alpha mit Digits(MyNumFld)
Dabei ist zu beachten, das vor nit Nullen aufgefüllt wird
Feld1 5,0 = 12
Digits(Feld1) = '00012'

Oder Alpha zum Num wandel
Feld2 5A = 12
Cast( Feld2 as dec(5, 0))

Dann kann man es vergleichen. In einer WHERE-Bedingung könnte es so aus sehen

...
where Feld1 = Cast( Feld2 as dec(5, 0))

Gruß Ronald