Benutzer mit den meisten Antworten
TOP 1000 UPDATE und SELECT

Frage
-
Hallo Zusammen,
ich habe ein paar Fragen zu Update und Select.
Ausgangspunkt:
Select Top 1000 ID, Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8, RA From Daten Order by AZ DESC
Nun möchte ich diese Datensätze aktualisieren:
Update Top 1000 Daten RA = 0 Where AZ....
Wie ist die Abfrage richtig?
Dann möchte ich die 1000 Datensätze einzeln auslesen.
Select Top 1 ID, Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8, RA From Daten Order by AZ DESC
Wie ist die Abfrage richtig, damit ich jeden Datensatz einzeln auslesen kann?
Leider finde ich keine Antwort im Netz.
Vielleicht kann mir hier jemand weiter helfen.
Danke, Gruß Klaus
Antworten
-
Hallo Stefan,
ich habe mein Problem so gelöst:
1. Ich habe meiner Tabelle eine Spalte angefügt "OK".
2. Ich habe in meiner DB eine Sicht erstellt, die genau meiner Abfrage "Select Top 1000 ID, Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8, RA, OK From Daten Order by AZ DESC" entspricht.
Jetzt kann ich in der Sicht "Top1000" alle gewünschten Datensätze aktuallisieren.
Die einzelnen Datensätze kann ich jetzt mit:
Select Top 1 ID, Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8, RA From Top1000 Where OK = 0
auslesen.
Mit dem Update setze ich dann "OK" auf 1.
Danke, Gruß Klaus
- Als Antwort markiert BlauesBlatt Sonntag, 23. November 2014 17:46
Alle Antworten
-
Hallo Klaus,
mit dem UPDATE würde ich es mal so versuchen:
UPDATE Daten SET RA = 0 WHERE ID IN ( SELECT TOP 1000 ... FROM Daten WHERE ... ORDER BY ... )
Was Du mit "1000 Datensätze einzeln auslesen" meinst, habe ich nicht verstanden.
Wenn Du einen einzelnen Datensatz lesen willst, nimm die ID als WHERE Klausel. Also bspw. so:
SELECT ... FROM Daten WHERE ID = 1
Wenn Du alle 1000 Datensätze haben möchtest:
SELECT TOP 1000 ... FROM Daten WHERE ... ORDER BY ...
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
-
Hallo Elmar,
nächstes Mal schreibe ich bei "GOOGLE".
>Das stimmt nicht, denn Du hast schon eine Antwort bekommen, nur sie ignoriert.
Wie mir diese Antwort bei meinem Problem helfen soll, weiß ich leider nicht.
Vielleicht kannst Du mir das erklären?
Es gibt Leute, die fragen hier, weil sie sich nicht auskennen.
Und wenn die dann eine Antwort bekommen, wo sie nicht wissen um was es geht...
Danke, Gruß Klaus
-
Hallo Klaus,
natürlich geht es über die ID. Du musst lediglich deine Sortierung anpassen, dann hast Du auch die 1000 passenden ID Werte.
Aber solange Du uns nicht verrätst, wo und wie Du die Datensätze auf welche Art einzeln auswerten willst, kann man dir auch nicht sagen, wie Du das ggfs. erreichen kannst.
Bzgl. deines Kommentars:
Und wenn die dann eine Antwort bekommen, wo sie nicht wissen um was es geht...
Das wird wohl daran liegen, dass deine Fragestellungen bei den potientellen Antwortenden mehr Fragen offen lassen als bei dir. Die Beschreibung ist zu kurz, es fehlen an für sich sämtliche Details, die einem helfen würden, das genaue Problem erkennen zu können.
In diesem Thread fehlen mir bspw. die Angaben, wie Du in welchem Programm auf welche Weise einzelne Datensätze in welcher Form auswerten willst. Die genaue Beschreibung der gewünschten Auswertung ist hier natürlich auch wichtig.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Sonntag, 23. November 2014 12:30
-
Hallo Stefan,
es geht um die 1000 Datensätze die ich mit "Select Top 1000 ID, Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8, RA From Daten Order by AZ DESC" bekomme.
Das sind 1000 Datensätze aus 1200000000.
Selbst wenn ich die 1000 Datensätze nach der ID sortiere, weiß ich nicht welche ID sie haben.
Die IDs sehen etwa so aus:
35108585
87005809
34330144
... <ca. 875 weitere Zahlen, die einem nichts bringen>
110902335
110877102
110877033
Da ist nicht mit ID von 1 bis 1000.
Danke, Gruß Klaus
- Bearbeitet Stefan FalzModerator Sonntag, 23. November 2014 16:32 Elend lange Zahlenreihe gekürzt, da die niemanden interessiert und nicht hilfreich ist.
-
Hallo Klaus,
Eigeninitiative wird in einem Forum ebenso erwartet und Fragen sollten zeigen, dass derjenige sich mit dem "Stoff" auseinandersetzt.
Hier: Beschäftige Dich mit der OUTPUT-Klausel.
Gruß Elmar
P. S.: Und bitte mülle nicht die Antworten zu, indem Du ellenlange Zahlenreihen einfügst, die niemanden weiterhelfen.
-
Hallo Klaus,
ich verstehe ja, dass Du nicht weißt, wie SQL funktioniert und was man damit machen kann.
Aber wie Elmar und meine Wenigkeit ebenfalls schon sagten: Deine Postings führen nicht zum Ziel.
Du stellst Fragen und möchtest gerne eine Antwort. Wir versuchen, dir bei den Problemen zu helfen und geben Denkanstöße oder Beispiele, wie Du das lösen kannst.
Wenn dann deinerseits aber nur völliges Unverständnis kommt und Du dich genervt zeigst hilft das weder dir noch uns.
Also nimm die Vorschläge bitte erstmal an, probier sie aus und mecker nicht gleich rum, dass das eh nicht so gehen würde. Denn das, was Du beschrieben hast, geht so wie von mir vorgeschlagen ohne Probleme.
Allerdings fehlen leider immer noch so gut wie alle wichtigen Angaben. Welche das sind, habe ich dir oben geschrieben. Nur mit diesen Angaben kann man überhaupt weitermachen. Daher halte ich mich jetzt hier raus bis Du die fehlenden Infos gepostet hast.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo Stefan,
ich habe mein Problem so gelöst:
1. Ich habe meiner Tabelle eine Spalte angefügt "OK".
2. Ich habe in meiner DB eine Sicht erstellt, die genau meiner Abfrage "Select Top 1000 ID, Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8, RA, OK From Daten Order by AZ DESC" entspricht.
Jetzt kann ich in der Sicht "Top1000" alle gewünschten Datensätze aktuallisieren.
Die einzelnen Datensätze kann ich jetzt mit:
Select Top 1 ID, Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z8, RA From Top1000 Where OK = 0
auslesen.
Mit dem Update setze ich dann "OK" auf 1.
Danke, Gruß Klaus
- Als Antwort markiert BlauesBlatt Sonntag, 23. November 2014 17:46
-
Hallo Klaus,
Also Du bist auch einer dieser Mitarbeiter...
Erst grabschen sich einen dicken Stapel Karteikarten... Danach rennen sie mit jeder einzelnen zu dem Ablagefach, holen die Kopie raus ... machen einen Haken auf die Kopie.... rennen zurück...
Am Ende beschweren sie sich beim Chef, dass das Ablagefach so schwer zu öffnen ist und das die Arbeit so lange dauert...
Was da wohl der Chef sagt?
Gruß Elmar
-
Hallo Klaus,
deine "Lösung" bringt dir zwar ggfs. ein Ergebnis, eine Lösung deines Problems ist das aber nicht.
Die neue Spalte war unnötig, genauso gut kannst Du auch einfach mit der ersten Abfrage als Basis arbeiten, auch als Datenquelle für andere Operationen wie dein Update.
Aber egal. Neben Elmar hast Du jetzt eine zweite Person, die sich deine Postings nicht mehr wirklich anschauen wird. Denn Wissen zu vermitteln macht nur dann Spaß, wenn das Gegenüber nicht von vornherein nur seine eigene Sichtweise zulässt und sämtliche Vorschläge anderer verwirft, obwohl man diese weder geprüft noch vertstanden hat.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community