2016-12-02 4 views
-1

enter image description here Ich muss eine Zeile an der Spitze meiner Tabelle einfügen. Gibt es eine Möglichkeit, das zu tun?Einfügen in die Tabelle oben in den Zeilen in Sql

Ich bin mir bewusst "Order By" und das wird nicht funktionieren. Ich muss die tatsächliche Tabelle ändern (bitte nicht vorschlagen, bestellen durch. Die meisten der Themen, die ich hier gefunden habe, deutet nur darauf hin).

Die Spalte enthält Datumsangaben. Die Tabelle ist bereits beim Eingeben der Daten von desc geordnet. Jeden Tag muss ich eine Zeile hinzufügen, die das aktuelle Datum hat, und den Rest der darauf basierenden Daten auffüllen. Diese Reihe muss oben sein.

Ich habe eine ID-Spalte. Es ist kein Primärschlüssel. Es geht 1, 2, 3 ... Das neue Datum, das hinzugefügt wird, sollte idealerweise in Zeile 1 mit der ID 1 eingefügt werden (das ist aber nicht absolut wichtig). Ich bin okay mit ID ist überall, aber die Daten müssen alle absteigend sein.

Edit: Ich habe Screenshots der Tabelle vor dem Einfügen und danach hinzugefügt. Die Tabelle enthält ungefähr 300 Datenzeilen. Wie Sie sehen, geht das aktuelle Datum nach dem Einfügen nach unten. Ich möchte das ändern.

Bitte helfen. Dank

+0

Fügen Sie einige Zeilen der Beispieltabellendaten vor und nach dem Vorgang hinzu. (Auch formatierter Text.) – jarlh

+0

Ich habe gerade einen Screenshot der Tabellendaten vor und nach dem Vorgang hinzugefügt. Brauchten Sie Daten in einem tatsächlichen Tabellenformat? –

+2

Daten werden ungeordnet gespeichert. Es gibt nicht wirklich erste oder letzte Zeilen. Um Zeilen in einer bestimmten Reihenfolge zu lesen, verwenden Sie ORDER BY. IDs sind nur IDs, und sie sollen nichts bedeuten. Aber wenn man die IDs zwischen den Zeilen ändert, werden Fremdschlüssel und andere Dinge durcheinander gebracht - also tu es nicht. – jarlh

Antwort

0

Wenn Sie die folgende Antwort auf eine Frage gestellt vorher gelesen, es wird ausführlich, warum Sie Auftrag von aufgrund der Reihenfolge der Zeilen zurückgegeben werden nie wird garantiert verwenden müssen:

Default row order in SELECT query

daher nur Fügen Sie die Daten in die Tabelle ein, was SQL damit im Hintergrund macht, ist für Sie irrelevant, relevant ist die Reihenfolge, in der Sie sie anfordern. Daher ist Order By der Weg, um die Daten in der von Ihnen gewünschten Reihenfolge zu erhalten.

ich kämpfen, um zu verstehen, was Sie unter:

Die Tabelle bereits ab bestellt wird, wenn die Daten eingegeben wird.

Es sollte ein zweistufiger Prozess sein:

1) Einfügen von Daten

INSERT INTO [TABLENAME] VALUES ([ID], [risk_date_day], [Risk1], [Risk2], [Risk3], [Risk4], [Risk5], [Grand Total], [1Per], [2Per], [3Per], [4Per], [5Per]); 
--Naturally replace the values between square brackets with the correct values for data entry. 

2) Abrufen von Daten

SELECT [ID], [risk_date_day], [Risk1], [Risk2], [Risk3], [Risk4], [Risk5], [Grand Total], [1Per], [2Per], [3Per], [4Per], [5Per] 
FROM [TABLENAME] 
ORDER BY [risk_date_day] DESC; 

Dadurch wird die Daten mit dem jeweils neuesten Termine Rückkehr an die Spitze.

Wenn Sie jedoch sagen, dass das Datum, das Sie an einem bestimmten Tag eingeben könnten, nicht unbedingt das neueste Datum sein muss, dann wird dies nicht funktionieren. In diesem Fall würde ich vorschlagen, ein Feld mit dem Namen DateOfEntry hinzuzufügen und dieses Feld zu verwenden, um die Order By durchzuführen.

+0

Wenn eine Frage ein Duplikat ist, markieren Sie es als solches. – Takarii

+0

Hallo Landy81, wenn ich sage "die Tabelle ist bereits durch desc bestellt, wenn die Daten eingegeben werden" ... Ich habe diese Tabelle (A) aus einer anderen Tabelle erstellt. Als ich die Daten aus der anderen Tabelle abgefragt habe, habe ich in der Reihenfolge in meine erste Tabelle A eingefügt (nach Datum absteigend). Jetzt, wenn ich Zeilen hinzufüge, geht es natürlich nach unten. Das war, was ich zu verhindern versuchte –

+0

@FariyaFarhad Es wird tun, und das sollte für Sie irrelevant sein. Wie es gespeichert wird, ist die Sorge von SQL, Sie sollten sich nur darum kümmern, wie Sie die Daten über die select-Anweisung aus der Datenbank zurückholen. – Landy81

Verwandte Themen