Abfrageprobleme

28/02/2008 - 11:09 von Andreas Vogt | Report spam
Hallo,
folgendes Grundproblem:
Es werden tàglich Messwerte von Bauteilen importiert. Daten liegen als
Textfile vor.
Import in temporàre Tabelle und daraus import der "neuen" Bauteile in
Arbeitstabelle realisiert.

Nun ist das Problem dass nachgearbeitete Bauteile mit neuen Messwerten
importiert werden müssen.
Dazu habe ich mal ein Modell mit TabelleA und TabelleB gemacht mit ID
(Autowert) und ID_Ven(Double):
"nachgearbeitete Bauteile in TabelleB sind die, die mehr Eintràge
gleicher Bauteilnummer (ID_Ven) haben als in TabelleA"

Mein klàglicher Abfrageversuch:
SELECT B.ID_Ven
FROM TabelleA AS A INNER JOIN TabelleB AS B ON A.ID_Ven = B.ID_Ven
GROUP BY B.ID_Ven
HAVING Count(B.ID_Ven)>Count([A].[ID_Ven])

Die Ergebnismenge ist leer.
Kann mir jemand auf die Sprünge helfen?

Gruß Andreas
 

Lesen sie die antworten

#1 Peter Doering
28/02/2008 - 13:06 | Warnen spam
Hallo,

Andreas Vogt wrote:

Es werden tàglich Messwerte von Bauteilen importiert. Daten liegen als
Textfile vor.
Import in temporàre Tabelle und daraus import der "neuen" Bauteile in
Arbeitstabelle realisiert.

Nun ist das Problem dass nachgearbeitete Bauteile mit neuen Messwerten
importiert werden müssen.
Dazu habe ich mal ein Modell mit TabelleA und TabelleB gemacht mit ID
(Autowert) und ID_Ven(Double):
"nachgearbeitete Bauteile in TabelleB sind die, die mehr Eintràge
gleicher Bauteilnummer (ID_Ven) haben als in TabelleA"

Mein klàglicher Abfrageversuch:
SELECT B.ID_Ven
FROM TabelleA AS A INNER JOIN TabelleB AS B ON A.ID_Ven = B.ID_Ven
GROUP BY B.ID_Ven
HAVING Count(B.ID_Ven)>Count([A].[ID_Ven])

Die Ergebnismenge ist leer.



Weil Count(B.ID_Ven)=Count(A.ID_Ven) ist. Wenn du dir die beiden Werte bei
der Ausgabe ohne Having-Klausel anzeigen laesst, wird das schnell klar.

Du kannst stattdessen folgendes probieren:

SELECT B.ID_Ven, B.CntB, A.CntA
FROM
(SELECT ID_Ven, Count(ID_Ven) AS CntA FROM TabelleA GROUP BY ID_Ven) AS A
INNER JOIN
(SELECT ID_Ven, Count(ID_Ven) AS CntB FROM TabelleB GROUP BY ID_Ven) AS B
ON A.ID_Ven = B.ID_Ven
WHERE B.CntB>A.CntA

(Luftcode)

Gruss - Peter

Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Ähnliche fragen