Einfaches Query machen! SQL

mykey84

Grünschnabel
Hallo zusammen
Ich würde gerne ein Query machen, jedoch ist das für mich richtiges Neuland:

Ich habe eine Tabelle mit dem Namen "Call" und in diesem Tabelle hat es diverse Daten.
Ich möchte nun bei einem Feld mit dem Namen "Erledigt" alle Werte 0 auf -1 setzen.
Allerdings nur alle Werte die unter einem Datum liegen. Das Datum liegt im Feld "Closeddate" und hat folgenes Format des Datums sieht so aus "1/9/2003 16:18:31"


Wie kann ich das Query Programmieren? Wie gesagt es ist für mich richtiges neuland.

Vielen Dank im Voraus.

Gruss Michael
 
Hi,

um welche DB handelt es sich, welche Scriptsprache?

Ich nehme mal Bezug auf PHP mit MySQL.

MySQL (und andere) Date-Format ist normalerweise: 2003-9-1 16:18:31 (sollte man auch in diesem Format in die DB schreiben, um mit dem Datum bei Querys arbeiten zu können).

"Allerdings nur alle Werte die unter einem Datum liegen."
Unter welchem Datum?

Du könntest ein Datum an Hand eines Timestamps (Sekunden seit 1970) definieren:
PHP:
$ts = time(); // aktueller Zeitstempel in Sekunden
$date = date("Y-m-d H:i:s", $ts); // für MySQL in Datum formatieren

Der Query könnte dann so aussehen (betrifft dann alle Spalten, deren Closeddate < des definierten Datums ist):
PHP:
$sql = "UPDATE Call SET Erledigt = 1 WHERE Closeddate < '".$date."'";

Hoffe ich konnte helfen.
Gruß tyg3r
 
Hi Tyg3r
Besten Dank für deine Antwort.

Ich möchte das Query im Microsoft Enterprice Manager ausführen.

Bsp:
Das Feld "Erledigt" sollte mit dem Wert -1 anstelle 0 gepflegt werden, wenn das "Closedate" kleiner als 01.09.2007 ist und vom "Closeby" Wert: RueggerM enthält.

Oder gibt es im Enterprice manager noch eine ander möglichkeit Felder nur zu ersetzen wenn das Datum kleiner und von einem Bestimmten benutzer geschlossen wurde.

Gruss Michael
 
Die Fragen kann ich Dir leider nicht beantworten, da das nicht mein Gebiet ist.
Aber die SQL müßte sehr ähnlich sein.

UPDATE Close SET Erledigt = -1 WHERE DATE(Closedate) < '2007-09-01' AND Closeby = 'RueggerM'

Zu beachten ist:
- Der Typ vom Feld Erledigt muß dann negative INT erhalten können
- DATE(Closedate) Extrahiert das Datum aus dem Feld um es vergleichen zu können
- Closeby = 'RueggerM' (exakter Wert des Feldes)
- Closeby = '%RueggerM%' (enthält RueggerM)

Wie gesagt, so wäre der Syntax von MySQL, Ablauf ist aber sicherlich identisch.

Gruß tyg3r
 
Hallo Tyg3

Vielen vielen Dank. Genau das habe ich gesucht!

End Version sieht so aus:
UPDATE dbo.Call
SET Erledigt = - 1
WHERE (Erledigt = 0) AND (ClosedDate > N'9/1/2007')

Super
Besten Dank!

gruss Michael
 

Neue Beiträge

Zurück