helmuthelmut2000
Goto Top

Spalte nach KW sortieren

In einer MSSQL 2000 DB soll nach KW sortiert werden.

Hallo,

Da bin ich halt schon wieder,
mit einem Problem mit meiner MSSQL DB und mit einem Frontpageformular.
Da funktoniert jetzt dank auch eurer Hilfe in diesem Forum alles sehr gut,
bis auf die Kleinichkeiten halt.
Da hab ich eine Spalte da schreiben wir dir KW hinein wo zu Beispiel die
Arbeit erledigt sein soll.
Diese Spalte kann man auch sortieren. Doch das ist schlecht da kommt zum
Beispiel die KW 1 vor der KW 51.
Beispiel:

1. KW 1
2. KW 2
3. KW 50
4. KW 51

Es sollte aber so sein

1. KW 50
2. KW 51
3. KW 1
4. KW 2

Geht das irgendwie? Hat das Problem auch schon jemand gehabt und vielleicht
irgendwie gelöst?

Auf eure Hilfe wäre ich euch sehr dankbar.

mfg
Helmut

Content-Key: 19846

Url: https://administrator.de/contentid/19846

Printed on: April 18, 2024 at 20:04 o'clock

Member: Biber
Biber Nov 19, 2005 at 13:35:00 (UTC)
Goto Top
Moin Helmut,
das ist bei Datenbanken wie im richtigen Leben: wenn Du eine Sortierung haben willst nach Jahreszahl und KW, musst Du nach beiden sortieren.

Also in Deinem Fall nach zwei Tabellenfeldern: eines mit der Jahreszahl und eines wie bisher nach der KW. Anzeigen aber nur das KW-Feld.
Oder - Alternative 2: Du zeigst alles sortiert nach einem Deiner Datumsfelder an und blendest statt Datumsfeld das KW-Feld ein.
Oder - sauberste Variante - Du verzichtest auf ein Datenbankfeld "KW", zeigst sortiert nach Datum an und berechnest die Kalenderwoche für die Anzeige.

HTH Biber
Member: helmuthelmut2000
helmuthelmut2000 Nov 19, 2005 at 18:24:53 (UTC)
Goto Top
Hallo Biber,

Ich dachte das eigentlich so.
Kann ich nicht eine Vorgabe machen das
eine Spalte zum Beispiel mit dem Namen KW
mir das so sortiert, wie ich es in einer Beispielspalte
oder einem Beispielformular es vorgebe?

Gruß
Helmut
Member: Biber
Biber Nov 19, 2005 at 19:02:40 (UTC)
Goto Top
Klar, Helmut,
Kannst Du machen. Aber ich sehe jetzt nicht den bestechenden Vorteil.
Die Anzeige würde gemäß der Reihenfolge einer unsichtbaren Sortierspalte erfolgen... soweit hätten wir die gleiche Strategie.
Was Du mit einem Beispielformular meinst, ist mir nicht ganz klar. Welche "Reihenfolgewünsche" könnte denn ein Anwender auf dieser Dateibank haben bezogen auf das Feld KW? (Nehmen wir mal an, nur 1 oder 2stellige Werte werden angezeigt)

a) Die Tabelle nach KW chronologisch:
...
51 (unsichtbar:2004)
51 (unsichtbar:2004)
52 (unsichtbar:2004)
53 (unsichtbar:2004)
1 (unsichtbar:2005)
1 (unsichtbar:2005)
2 (unsichtbar:2005)
3 (unsichtbar:2005)

b) Die Tabelle nach KW, neueste Daten zuerst:
3 (unsichtbar:2005)
2 (unsichtbar:2005)
1 (unsichtbar:2005)
1 (unsichtbar:2005)
53 (unsichtbar:2004)
53 (unsichtbar:2004)
52 (unsichtbar:2004)
51 (unsichtbar:2004)

Und weiter? Die beiden Möglichkeiten entsprechen doch einer Reihenfolge nach Datum, also einem Feld, das Du auf jeden Fall in der Tabelle vorliegen hast. Aus dem Feld berechnest Du heute doch dieses KW-Datenbankfeld. Und statt dessen kannst Du doch einfach ein KW-Anzeigefeld berechnen. Welche möglichen Sortierungen willst Du denn mehr "definieren" in einem Musterformular?

Grüße Biber
Member: helmuthelmut2000
helmuthelmut2000 Nov 20, 2005 at 00:08:42 (UTC)
Goto Top
Hallo Biber,

Wie meinst du das jetzt?
Kann ich die bestehende Spalte irgendwie als
KW Spalte machen.
Ich hab das jetzt als Text-Spalte.
Kannst du mir vielleicht da noch ein Tipp geben.

mfG
Helmut
Member: helmuthelmut2000
helmuthelmut2000 Nov 20, 2005 at 13:11:13 (UTC)
Goto Top
Hallo,

Was mich da jetzt noch interessiert ist wie schreibich das,
das ich inerhalb einer sortierung nochmal sorteiren kann.
Da schreib ich:
"SELECT * FROM Tabelle WHERE (Abt = '2') ORDER BY Eilt DESC,KW ASC"
Jetzt sortiert es mir aus einer Tabelle alles wo in der Spalte Abt eine 2 steht
und in der Spalte Eilt ein EILT steht absteigend und anschliesend was in der
Spalte KW Steht aufsteigend.
Wie kann ich jetzt das in der Spalte Eilt steht auch noch nach KW aufsteigend
sortieren lassen.
Ich hoffe ich hab mir richtig ausgedrückt, wenn nicht einfach nochmal
fragen.

Gruß
Helmut
Member: Biber
Biber Nov 20, 2005 at 13:15:29 (UTC)
Goto Top
Moin Helmut,
ich versuch noch mal zu skizzieren, wie meine Strategie wäre.

Da hab ich eine Spalte da schreiben wir dir KW hinein
wo zu Beispiel die Arbeit erledigt sein soll.

Meine Vorstellung wäre ganz simpel, dass Ihr dort, wo ihr jetzt (wenn ich es richtig verstanden habe manuell ) ein Zeichen-Feld "PlanKW" füllt mit dem Text "KW 1" oder "KW 47" in Zukunft ein Feld "PlanKW" füllt, mit einem sortierbaren (Pseudo-)Datumswert in der Form "2006-01" oder "2005-47".
Das betrifft nur die Form der Speicherung in der Tabelle - in der Anzeige kann ja aus diesen Feld ein String in "menschen-lesbarer" Form gebastelt werden.
Angenommen ich hätte in der Tabelle "ToDoList" gespeichert:

Tabellenspeicherung:
ID Jobname;Verantwortlich;PlanKW
1 Einladung an alle MA;Sekretariat;2005-46
2 Raum buchen;Sekretariat;2005-45
3 Rede schreiben;studentische Hilfskraft;2005-50
4 Rede halten;Chef;2006-02

...dann ist mein Sortierkriterium das Feld "PlanKW", aber das zeige ich nicht an, sondern ein berechnetes Feld "KW".

Tabellenanzeige:

SELECT "KW " & Mid(PlanKW,6,2) AS KW,Jobname, Verantwortlich
FROM ToDoList
ORDER BY PlanKW DESC;

KW... Jobname;Verantwortlich
KW 02 Rede halten;Chef
KW 50 Rede schreiben;studentische Hilfskraft
KW 46 Einladung an alle MA;Sekretariat
KW 45 Raum buchen;Sekretariat

(Wobei das Select-Statement bei Dir natürlich geringfügig abweichen kann je nach SQL-Dialekt)
Grüße Biber