AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL ADS und ungleich
Thema durchsuchen
Ansicht
Themen-Optionen

SQL ADS und ungleich

Ein Thema von Grolle · begonnen am 2. Nov 2008 · letzter Beitrag vom 3. Nov 2008
Antwort Antwort
Seite 3 von 3     123   
nahpets
(Gast)

n/a Beiträge
 
#21

Re: SQL ADS und ungleich

  Alt 3. Nov 2008, 12:24
Zitat von Grolle:
SQL-Code:
SELECT * FROM CONTACTS LEFT JOIN PROJECTS_TO_CONTACTS ON CONTACTS.ID = PROJECTS_TO_CONTACTS.CONTACT_ID
WHERE ((PROJECTS_TO_CONTACTS.PROJECT_ID<>4) OR (PROJECTS_TO_CONTACTS.PROJECT_ID IS NULL))
Versuchmal dieses:
SQL-Code:
SELECT * FROM CONTACTS LEFT JOIN PROJECTS_TO_CONTACTS ON CONTACTS.ID = PROJECTS_TO_CONTACTS.CONTACT_ID
WHERE ((not (PROJECTS_TO_CONTACTS.PROJECT_ID=4)) OR (PROJECTS_TO_CONTACTS.PROJECT_ID IS NULL))
oder:
SQL-Code:
SELECT * FROM CONTACTS LEFT JOIN PROJECTS_TO_CONTACTS ON CONTACTS.ID = PROJECTS_TO_CONTACTS.CONTACT_ID
WHERE ((PROJECTS_TO_CONTACTS.PROJECT_ID not in(4)) OR (PROJECTS_TO_CONTACTS.PROJECT_ID IS NULL))
Der Vergleich auf <> funktioniert bei einigen Datenbanken nicht ordentlich, wenn von ihm auch Spalten mit Null-Werten betroffen sind.
Hast Du bei Deiner Datenbank eine IsNull- oder IfNull-Funktion? Dann könnte Dir auch sowas helfen:
SQL-Code:
SELECT * FROM CONTACTS LEFT JOIN PROJECTS_TO_CONTACTS ON CONTACTS.ID = PROJECTS_TO_CONTACTS.CONTACT_ID
WHERE ((IsNull(PROJECTS_TO_CONTACTS.PROJECT_ID,-1) <> 4))
Hoffe, dass ich Dein Problem verstanden habe und nicht jetzt den Lösungsansatz für ein anderes Problem liefere.
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#22

Re: SQL ADS und ungleich

  Alt 3. Nov 2008, 12:46
Nur so als Idee:
Warum setzt du nicht PROJECT_ID auf default not null bzw. default -1 ?

  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#23

Re: SQL ADS und ungleich

  Alt 3. Nov 2008, 13:06
Hallo,

ich zitier mich mal:

Zitat von Grolle:
Jetzt möchte ich alle CONTACTS, die nicht dem PROJECT 4 zugeordnet sind, oder 0 sind und auch nicht in dem
Ergebnis der ersten Abfrage auftauchen (das passiert in den obigen Tabellen z. B. mit CONTACT_ID 2. Dieser
ist mehreren Projekten zugeordnet).
Bisher sieht die Abfrage da so aus:
SQL-Code:
SELECT * FROM CONTACTS LEFT JOIN PROJECTS_TO_CONTACTS ON CONTACTS.ID = PROJECTS_TO_CONTACTS.CONTACT_ID
WHERE ((PROJECTS_TO_CONTACTS.PROJECT_ID<>4) OR (PROJECTS_TO_CONTACTS.PROJECT_ID IS NULL))
Nur der im Zitat fett markierte Teil funktioniert nicht!. Ansonsten funktioniert die Abfrage einwandfrei!

Viele Grüße ...

  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#24

Re: SQL ADS und ungleich

  Alt 3. Nov 2008, 13:31
Zitat von Grolle:
Jetzt möchte ich alle CONTACTS, die nicht dem PROJECT 4 zugeordnet sind, oder 0 sind und auch nicht in dem
Ergebnis der ersten Abfrage auftauchen (das passiert in den obigen Tabellen z. B. mit CONTACT_ID 2. Dieser
ist mehreren Projekten zugeordnet).
SQL-Code:
select a.* from #contacts a
where a.id not in (select b.contact_id from #projects_to_contacts b where b.project_id=4 )
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#25

Re: SQL ADS und ungleich

  Alt 3. Nov 2008, 16:38
Hallo Joachim,

ich bekommme da eine Fehlermeldung, das er die Tabelle nicht findet?:
Zitat:
poQuery: Error 7200: AQE Error: State = HY000; NativeError = 7112; [iAnywhere Solutions][Advantage SQL][ASA] Error 7112: The temporary table cannot be found. Table name: #contacts
Viele Grüße ...

// Edit. Ich glaub so geht's:
SQL-Code:
select a.* from contacts as a
where a.id not in (select b.contact_id from projects_to_contacts as b where b.project_id=4 )

  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#26

Re: SQL ADS und ungleich

  Alt 3. Nov 2008, 19:59
Er hat wahrscheinlich die Testdaten in temporären Tabellen angelegt (Präfix #). ADS löscht solche Tabellen beim Schließen der DB-Connection automatisch.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#27

Re: SQL ADS und ungleich

  Alt 3. Nov 2008, 20:45
Hi,

Zitat von Union:
Er hat wahrscheinlich die Testdaten in temporären Tabellen angelegt (Präfix #). ADS löscht solche Tabellen beim Schließen der DB-Connection automatisch.
wieder was gelernt. Auf jeden Fall klappt's jetzt. Danke euch allen!


  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz