![]() |
Datenbank: DBase • Version: 3 • Zugriff über: ADO
Zwei SQL Anweisungen in einer.
Hallo nochmal.
Ganz kurze frage am Rande. Hab ne SQL-Anweisung die mir DS mit BETWEEN sucht. Diese DatenSätze möchte ich dann nochmal sortieren. Mit OrderBy funktioniert das aber komischerweise nicht. Kann mir da wer kurz n Rat geben? Danke schonmal. |
Re: Zwei SQL Anweisungen in einer.
Zeig mal deine Abfrage.
|
Re: Zwei SQL Anweisungen in einer.
Delphi-Quellcode:
In etwa habe ich mir das gedacht. Und dann halt noch nen ORDER BY füe die beiden Felder, sodass ich immer den aktuellen Datensatz (zeitlich am nächsten) und immer weiter abwärts habe.
SELECT Feld1,Feld2.... FROM Tabelle WHERE Feld1 BETWEEN "01.01.1999" AND TODAY() AND Feld2 BETWEEN "0000" AND NOW()
|
Re: Zwei SQL Anweisungen in einer.
Welche Typen haben Feld1 und Feld2?
|
Re: Zwei SQL Anweisungen in einer.
Feld1 Datum, Feld2 Integer. Geht das vllt mit UNION?
|
Re: Zwei SQL Anweisungen in einer.
Now() ist ein Timestamp. Wie willst du diese mit Integer vergleichen?
|
Re: Zwei SQL Anweisungen in einer.
stimmt. war auch die alte anweisung. sry. hab nu für die zeit FormatDateTime genommen. und union is auch quatsch sry.
das macht die verzweiflung. |
Re: Zwei SQL Anweisungen in einer.
Grundsätzlich sollte es aber mot dem Order By gehen. Kommt den ein Fehler oder wird nur falsch sortiert?
|
Re: Zwei SQL Anweisungen in einer.
mom
|
Re: Zwei SQL Anweisungen in einer.
Zitat:
|
Re: Zwei SQL Anweisungen in einer.
Zitat:
|
Re: Zwei SQL Anweisungen in einer.
[OT]Hier müsst hier an die etwas älteren denken, welche dem jugendlichen Slang nicht mehr so kennen.[/OT]
|
Re: Zwei SQL Anweisungen in einer.
Danke Muhkuh ^^ und sry kinzler. Wobei ich auch net mehr der jüngste bin -.-
Also. Hier meine Anweisung.:
Delphi-Quellcode:
So hab ich mir das gedacht. Aktuelle Fehlermeldung: "Table level changed". Und ich weiss net warum. Wenn man sich schlauliest / lesen will... Ich sag besser nix...
Query1.sql.text:='SELECT FIRMA,KOMMENTAR,KONTAKTART,BEARBEITER,WVKONTAKT,WVZEIT,ORT,LKZEIT FROM SUCC1 WHERE WVKONTAKT BETWEEN "01.01.1999" AND '''+FormatDateTime('dd.mm.yyyy', now)+''' AND WVZEIT BETWEEN "0000" AND '''+FormatDateTime('hhmm', now)+''' ORDER BY WVKONTAKT,WVZEIT';
|
Re: Zwei SQL Anweisungen in einer.
Versuch es mal mit Parametern:
SQL-Code:
SELECT
FIRMA, KOMMENTAR, KONTAKTART, BEARBEITER, WVKONTAKT, WVZEIT, ORT, LKZEIT FROM SUCC1 WHERE WVKONTAKT BETWEEN :sdatum AND :edatum AND WVZEIT BETWEEN :szeit AND :ezeit ORDER BY WVKONTAKT, WVZEIT; |
Re: Zwei SQL Anweisungen in einer.
mom (Jetzt weiss er ja was das heisst)
|
Re: Zwei SQL Anweisungen in einer.
habe ich das jetzt richtig verstanden:
Delphi-Quellcode:
???
var
sdatum,edatum:string; szeit,ezeit:integer; begin sdatum:='01.01.1999'; edatum:=FormatDateTime('dd.mm.yyyy', now); szeit:=0000; ezeit:=strtoint(FormatDateTime('hhnn', now)); Query1.sql.text:='SELECT FIRMA,KOMMENTAR,KONTAKTART,BEARBEITER,WVKONTAKT,WVZEIT,ORT,LKZEIT FROM SUCC1 WHERE WVKONTAKT BETWEEN :sdatum AND :edatum AND WVZEIT :szeit AND :ezeit ORDER BY WVKONTAKT,WVZEIT'; query1.active:=true; |
Re: Zwei SQL Anweisungen in einer.
Habe ich das nun richtig verstanden:
Delphi-Quellcode:
var
sdatum,edatum:string; szeit,ezeit:integer; begin sdatum:='01.01.1999'; edatum:=FormatDateTime('dd.mm.yyyy', now); szeit:=0000; ezeit:=strtoint(FormatDateTime('hhnn', now)); Query1.sql.text:='SELECT FIRMA,KOMMENTAR,KONTAKTART,BEARBEITER,WVKONTAKT,WVZEIT,ORT,LKZEIT FROM SUCC1 WHERE WVKONTAKT BETWEEN :sdatum AND :edatum AND WVZEIT :szeit AND :ezeit ORDER BY WVKONTAKT,WVZEIT'; query1.active:=true; |
Re: Zwei SQL Anweisungen in einer.
ich pfeife ^^
|
Re: Zwei SQL Anweisungen in einer.
Eher:
Delphi-Quellcode:
Query1.sql.text:='SELECT FIRMA,KOMMENTAR,KONTAKTART,BEARBEITER,WVKONTAKT,WVZEIT,ORT,LKZEIT FROM SUCC1 WHERE WVKONTAKT BETWEEN :sdatum AND :edatum AND WVZEIT :szeit AND :ezeit ORDER BY WVKONTAKT,WVZEIT';
Query1.Parameters.ParamByName('sdatum').asString := '01.01.1999'; Query1.Parameters.ParamByName('edatum').Value := Date(); Query1.Parameters.ParamByName('szeit').Value := 0; Query1.Parameters.ParamByName('ezeit').Value := Now(); |
Re: Zwei SQL Anweisungen in einer.
Hm. Okay. Würde ich ja gerne ausprobieren nur leider kann ich bei meiner TQuery-Komponente keine Params hinzufügen.
|
Re: Zwei SQL Anweisungen in einer.
Verwendest du die BDE (TQuery) oder wie oben geschrieben ADO (TADOQuery)?
|
Re: Zwei SQL Anweisungen in einer.
Ups BDE sry (achte ich nächstes mal besser drauf) :oops:
|
Re: Zwei SQL Anweisungen in einer.
Delphi-Quellcode:
Query1.ParamByName('sdatum').asString := '01.01.1999';
|
Re: Zwei SQL Anweisungen in einer.
Hmmm. Fehlermeldung "Query1: Param 'sdatum' not found.
|
Re: Zwei SQL Anweisungen in einer.
Ist .ParamCheck True?
|
Re: Zwei SQL Anweisungen in einer.
Nein war false.
|
Re: Zwei SQL Anweisungen in einer.
aber ob true ob false. dadurch ändert sich aucht nix. leider. -.-
|
Re: Zwei SQL Anweisungen in einer.
Die Parameterzuweisung ist aber nach der Zuweisung der Abfrage?
|
Re: Zwei SQL Anweisungen in einer.
jop
|
Re: Zwei SQL Anweisungen in einer.
Moin moin,
[OT] lol, ihr tackert den Thread aber schnell zu ;-) Geht doch innen Chat, geht evtl. schneller?! [/OT] |
Re: Zwei SQL Anweisungen in einer.
Zeig mal den ganzen Codeblock
|
Re: Zwei SQL Anweisungen in einer.
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
begin Query1.active:=false; Query1.sql.text:='SELECT FIRMA,KOMMENTAR,KONTAKTART,BEARBEITER,WVKONTAKT,WVZEIT,ORT,LKZEIT FROM SUCC1 WHERE WVKONTAKT BETWEEN :sdatum AND :edatum AND WVZEIT :szeit AND :ezeit ORDER BY WVKONTAKT,WVZEIT'; Query1.ParamByName('sdatum').asString := '01.01.1999'; Query1.ParamByName('edatum').Value := Date(); Query1.ParamByName('szeit').Value := 0; Query1.ParamByName('ezeit').Value := Now(); query1.active:=true; end; |
Re: Zwei SQL Anweisungen in einer.
Ersetze mal
SQL-Code:
mit
WVKONTAKT BETWEEN :sdatum AND :edatum
SQL-Code:
WVKONTAKT >= :sdatum AND WVKONTAKT <= :edatum
|
Re: Zwei SQL Anweisungen in einer.
Invalid use of Keyword. Token: ?
|
Re: Zwei SQL Anweisungen in einer.
Ich probiers einfach morgen selber nochmal. will ja keinen nerven. Falls ich was neues habe melde ich mich. Gute nacht zusammen.
|
Re: Zwei SQL Anweisungen in einer.
:gruebel: müsste dieser Teil des SQL-Statements
Delphi-Quellcode:
richtigerweise so lauten :gruebel:
WHERE WVKONTAKT BETWEEN :sdatum AND :edatum AND WVZEIT :szeit AND :ezeit ORDER BY WVKONTAKT,WVZEIT';
Delphi-Quellcode:
m.E. fehlt(e) BETWEEN bei WVZEIT... Die Klammern hab ich gewohnheitsgemäss gleich mal mit dazu gesetzt...
WHERE (WVKONTAKT BETWEEN :sdatum AND :edatum) AND (WVZEIT BETWEEN :szeit AND :ezeit) ORDER BY WVKONTAKT,WVZEIT';
|
Re: Zwei SQL Anweisungen in einer.
Delphi-Quellcode:
Statt TODAY() einfach Date(). Dann gehts. Danke nochmal für eure Hilfe. :-D
Query1.active:=false;
Query1.sql.text:='SELECT FIRMA,WVZEIT,WVKONTAKT FROM SUCC1 WHERE WVKONTAKT<=:edatum ORDER BY WVKONTAKT DESC'; Query1.ParamByName('edatum').Value := Date(); query1.active:=true; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz