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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 19846
Url: https://administrator.de/forum/spalte-nach-kw-sortieren-19846.html
Ausgedruckt am: 10.04.2025 um 01:04 Uhr
6 Kommentare
Neuester Kommentar
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
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
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
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
Moin Helmut,
ich versuch noch mal zu skizzieren, wie meine Strategie wäre.
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
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.
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