Abfrage-Problem

11/10/2007 - 00:09 von Michael Vollmer | Report spam
Hallo NG,

folgendes Szenario und Tabellenaufbau:

Rechnungstabelle: (mit 3-4 Datensàtzen)

RechID | ...
100 |
101 |
102 |
103 |


Historytabelle: (enthàlt Daten, wer wann was an den Rechnungen
gemacht/-àndert hat) (mit 3-4 Datensàtzen)

RechID | Vorgang | PersonalID
100 | 1 | ...
101 | 1 | ...
102 | 1 | ...
103 | 1 | ...
100 | 2 | ...
101 | 2 | ...


Beschreibung: die Vorgangsnummern in der Historytablle spiegeln immer eine
Aktion wieder => 1 steht z.B. für "Rechnung erstellt" ... 2 für "Rechnung
gedruckt"

Wie bekomme ich nun raus, welche Rechnung alle NICHT GEDRUCKT sind?
(demnach NICHT den Vorgang 2 haben)

Wie man rausbekommt, wie viele Rechnungen gedruckt sind liegt auf der Hand:
SELECT COUNT(*) AS count
FROM Rechnungstabelle INNER JOIN
Historytabelle ON Rechnungstabelle.RechID Historytabelle.RechID
WHERE (Historytabelle.Vorgang = 2)


Jedoch suche ich die umgekehrte Aktion: NICHT GEDRUCKTE RECHNUNGEN

Habe es schon mit WHERE <> 2 bzw. NOT =2 versucht...

SELECT COUNT(*) AS count
FROM Rechnungstabelle INNER JOIN
Historytabelle ON Rechnungstabelle.RechID Historytabelle.RechID
WHERE NOT (Historytabelle.Vorgang = 2)

jedoch gibt er mir
dort alle zurück, weil die entsprechende RechID jeweils mehrmals in der
Historytabelle vorkommt, da eine Rechnung ja mehrere Prozesse durchlàuft
(Erstellung, Drucken, Zusenden, etc.)


Wer kann mir helfen das ich die gewünschen NICHT GEDRUCKTEN Rechnungen
bekomme!?

Gruß
Micha
 

Lesen sie die antworten

#1 Jürgen Volke
11/10/2007 - 07:41 | Warnen spam
Hallo Michael


folgendes Szenario und Tabellenaufbau:

Rechnungstabelle: (mit 3-4 Datensàtzen)

RechID | ...
100 |
101 |
102 |
103 |


Historytabelle: (enthàlt Daten, wer wann was an den Rechnungen
gemacht/-àndert hat) (mit 3-4 Datensàtzen)

RechID | Vorgang | PersonalID
100 | 1 | ...
101 | 1 | ...
102 | 1 | ...
103 | 1 | ...
100 | 2 | ...
101 | 2 | ...


Beschreibung: die Vorgangsnummern in der Historytablle spiegeln immer
eine
Aktion wieder => 1 steht z.B. für "Rechnung erstellt" ... 2 für "Rechnung
gedruckt"

Wie bekomme ich nun raus, welche Rechnung alle NICHT GEDRUCKT sind?
(demnach NICHT den Vorgang 2 haben)

Wie man rausbekommt, wie viele Rechnungen gedruckt sind liegt auf der
Hand:
SELECT COUNT(*) AS count
FROM Rechnungstabelle INNER JOIN
Historytabelle ON Rechnungstabelle.RechID > Historytabelle.RechID
WHERE (Historytabelle.Vorgang = 2)


Jedoch suche ich die umgekehrte Aktion: NICHT GEDRUCKTE RECHNUNGEN

Habe es schon mit WHERE <> 2 bzw. NOT =2 versucht...

SELECT COUNT(*) AS count
FROM Rechnungstabelle INNER JOIN
Historytabelle ON Rechnungstabelle.RechID > Historytabelle.RechID
WHERE NOT (Historytabelle.Vorgang = 2)

jedoch gibt er mir
dort alle zurück, weil die entsprechende RechID jeweils mehrmals in der
Historytabelle vorkommt, da eine Rechnung ja mehrere Prozesse durchlàuft
(Erstellung, Drucken, Zusenden, etc.)


Wer kann mir helfen das ich die gewünschen NICHT GEDRUCKTEN Rechnungen
bekomme!?



in etwa:
SELECT * FROM Rechnungstabelle
WHERE RECHID NOT IN
(SELECT RECHID FROM Historientabelle WHERE Vorgang = 2)

HTH Jürgen

Ähnliche fragen