Zum Inhalt springen

Abfrage: ID in einer Tabelle mit unterschiedlichen Kriterien


Snipes83

Empfohlene Beiträge

Moin Leute,

ich hab mal wieder ein kleines Problem wo ich gerade nicht weiterkomm.

Unsere Software die wir nutzen hat mehrere Tabellen (Software kommt nicht von uns).

Ich bräuchte eine Abfrage die mir alle IDs listet welche in der Tabelle als Kriterium A und Kriterium B gekennzeichnet sind. Das Problem ist das die DB so wie ich das sehe nicht in der 3ten Normalform angelegt ist. Als Beispiel:

ID Kriterium

123123 A

123123 B

123124 A

123125 C

Wie ihr seht gibt es für die ID 123123 2 Einträge die einmal als "A" gekennzeichnet ist und einmal als "B". Wie löse ich das jetzt das ich als Endergebnis nur:

ID Kriterium

123123 A

123123 B

herausbekomme? MIt einem normalen und kann das ja nicht funktionieren da ja zeilenweise ausgelesen wird und somit A und B ja niemals zutrifft!? Habt ihr nen Lösungsansatz? Ich hoffe ich hab das Problem verständlich erklärt. Danke schonmal!

MFG Snipes83

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin Moin,

jetzt fiel mir doch noch nen Fehler auf. Und zwar habe ich jetzt für das ganze noch hinzugefügt das ich das Abbrechdatum in bestimmten Kriterien dazu haben will.

Ist die IPROVART = 0, so sollen nur zeilen ausgegeben werden wo das Datum im Jahre 2010 ist und zusätzlich ist IPROVART = 4, so sollen nur zeilen ausgegeben werden wo das Abbrechdatum vor 2010 ist. Das mit dem Datum klappt wunderbar bei IPROVART = 0, sobald ich das ganze aber mit IPROVART = 4 und-verknüpfe (mit dem Datumskriterien) bekomm ich auch Verträge agezeigt wo IPROVAT = 4 und das Datum auch in 2010 liegt.

Kann mal jemand meine Abfrage begutachten und mich ggf. auf nen Fehler aufmerksam machen?

select distinct 

	c1.nvertrag, c1.iprovart, c2.iprovart, k_PERSON.CNAME AS K_NAME, k_PERSON.CVORNAME, 	v_VERTRAG.CPOLNN, 

from 

	firmprov AS c1, 

	firmprov AS c2,

	VERTRAG v_VERTRAG,

	struktur v_struktur,

	KUNDEN k_KUNDEN,

	person k_person

where 

	v_struktur.nbenutzer = 11110000000002

	and v_struktur.nunter = v_vertrag.nmitarb 

	and c1.nvertrag = v_vertrag.nvirtnr 

	and v_vertrag.nkunden = k_kunden.nvirtnr

	and k_person.nvirtnr = k_KUNDEN.nperson

	and(c1.iprovart = 4 and c1.DABRECHDAT >= timestamp '2010-01-01' and        c1.DABRECHDAT <= timestamp '2010-12-31') 

	and (c2.iprovart = 0 and c2.DABRECHDAT <= timestamp '2009-12-31')

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe mir jetzt mal c1.Abrechdat und c2.Abrechdat ausgeben lassen.

Bei c1.Abrechdat stimmt alles, jedoch macht er bei c2.Abrechdat jede ID mit jedem Datum was in der Tabelle drin vorkommt. Ich will aber doch nur das Datum vergleichen welches drin steht wo IPROV = 4 ist? Sieht jemand was ich falsche mache?

Stehe grad voll auf dem Schlauch!

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

da ich nicht verstehe, was du mit dem neuesten Beitrag sagen wolltest, werde ich ihn einfach mal ignorieren...

nach dem, was du im vorletzten Beitrag geschrieben hast, müsste in der Abfragebedingung irgendwas in Richtung

(iprovart = 0 UND datum = 2010) ODER (iprovart = 4 UND abbrech < 2010)

stehen

kann es sein, dass in der Bedingung ein falsches Datum steht und es nicht <= '2010-12-31' sondern <= '2009-12-31' heißen sollte? (ich würde in dem Fall eher < '2010-01-01' verwenden)

am Besten wäre es, wenn du nochmal schreibst, was du jetzt hast und was du eigentlich brauchst

und es wäre eventuell gut zu wissen, was die Felder zu bedeuten haben (sofern du das überhaupt schreiben darfst)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...