Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Intersect im Tquery sql (https://www.delphipraxis.net/92182-intersect-im-tquery-sql.html)

mkinzler 15. Mai 2007 21:29

Re: Intersect im Tquery sql
 
Du könntest mit zwischengespeicherten Abfragen arbeiten und so eine Art Derived Table nachbilden.
Aber was spricht den gegen die Verkettung der Bedingungen?

The_ New_Guy 15. Mai 2007 21:35

Re: Intersect im Tquery sql
 
ich versuchs mal mit verkettung.

meine lösung werd ich dann posten -
(das versuch ich übrigens immer zu machen, denn ich mags nicht wenn leute einfach sagen 'hat sich erledigt' und nicht die lösung posten :mrgreen: )

The_ New_Guy 15. Mai 2007 21:40

Re: Intersect im Tquery sql
 
Delphi-Quellcode:
  Query1.Sql.Clear;
  query1.SQL.Add('select * from exceltabdatabase ');

  gl_kat := combobox2.ItemIndex;
     if gl_kat = 1 then
     query1.SQL.Add('where gl <= 5');

     if gl_kat = 2 then
     query1.SQL.Add('where gl between 6 and 10');

     if gl_kat = 3 then
     query1.SQL.Add('where gl between 11 and 15');

     if gl_kat = 4 then
     query1.SQL.Add('where gl > 15');



    if not((checkbox2.Checked = false) and (checkbox3.checked = false)) then
    begin
      if gl_kat > 0 then query1.SQL.Add('and') else query1.SQL.Add('where');

      if checkbox2.Checked = true then
      begin
        query1.SQL.Add(' erfolg = 0');
      end;

      if checkbox3.Checked = true then
      begin
        query1.SQL.Add(' erfolg = 1');
      end;
    end;
funktioniert so. allerdings mal schaun wie ich ALLE abfragen unter einen hut bekomm'

The_ New_Guy 15. Mai 2007 22:09

Re: Intersect im Tquery sql
 
Delphi-Quellcode:
  Query1.Sql.Clear;
  query1.SQL.Add('select * from exceltabdatabase ');
  start := true;

  gl_kat := combobox2.ItemIndex;
  if gl_kat <> -1 then
  begin
    start := false;
    query1.sql.add(' where ');

    if gl_kat = 1 then
    query1.SQL.Add(' gl <= 5');

    if gl_kat = 2 then
    query1.SQL.Add(' gl between 6 and 10');

    if gl_kat = 3 then
    query1.SQL.Add(' gl between 11 and 15');

    if gl_kat = 4 then
    query1.SQL.Add(' gl > 15');
   end;

    if not((checkbox2.Checked = false) and (checkbox3.checked = false)) then
    begin
      if start = false then query1.SQL.Add('and') else
      begin
        query1.SQL.Add('where');
        start := false;
      end;

      if checkbox2.Checked = true then
      begin
        query1.SQL.Add(' erfolg = 0');
      end;

      if checkbox3.Checked = true then
      begin
        query1.SQL.Add(' erfolg = 1');
      end;
    end;

    if checkbox4.Checked = true then
    begin
      if start = false then query1.SQL.add(' and ') else
      begin
        query1.SQL.add(' where ');
        start := false;
      end;
      query1.SQL.Add(' abrechnung_erfasst = 1');
    end;

    if checkbox1.Checked = true then
    begin
      if start = false then query1.SQL.add(' and ') else
       begin
        query1.SQL.add(' where ');
        start := false;
      end;
      query1.SQL.Add(' nur_beratung = 1');
    end;

    memo1.Lines := query1.SQL;
    memo1.Lines.Add(inttostr(combobox2.ItemIndex));

    refresh(false);
so wirds gemacht - danke an alle die mir tipps gegeben haben!


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:17 Uhr.
Seite 3 von 3     123   

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