Zum Inhalt springen

MS-SQL: Abfrage aus zwei Tabellen mit einem Ergebnis


Patrick.Karre

Empfohlene Beiträge

Hallo Forum,

ich habe folgendes Problem. Ich habe zwei Tabellen A und B. In der Tabelle A stehen Kunden und in der Tabelle B Einträhe zum Kunden mit einem Datum.

Ich möchte Einträge aus der Tabelle A die an einem Datum aus Tabelle B eingetragen worden sind. Wenn ich die Werte nur aus Tabelle A abrufe stimmt die Anzahl. Erstelle ich einen JOIN bekomme ich immer mehr Ergebnisse zurück.


SELECT COUNT(TA.Abschluss_Talk24_am)

FROM tblAS0002 AS TA

JOIN tblAS0002_History AS TH ON TH.IdAddress=TA.Id

GROUP BY TA.Abschluss_Talk24_am

Was mache ich falsch bzw. wie komme ich wieder an die Einzelergenisse ran?

Beste Grüße

Patrick

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin,

Ich möchte Einträge aus der Tabelle A die an einem Datum aus Tabelle B eingetragen worden sind. ...


SELECT COUNT(TA.Abschluss_Talk24_am)

FROM tblAS0002 AS TA

JOIN tblAS0002_History AS TH ON TH.IdAddress=TA.Id

GROUP BY TA.Abschluss_Talk24_am

Ich vermute, du suchst

SELECT * 

from tblAS0002 

where id IN 

(

    SELECT IdAddress

    from tblAS0002_History

    where datum = '06.06.2007'

)

hth

Reinhold

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es gibt noch zwei Probleme. Die Abfrage kann mehr als eine Lösung geben und es werden Werte aus der zweiten Tabelle gebraucht. Zur besseren Verdeutlichung habe ich mal das komplette Statement mit neuem Code eingebaut:

SELECT TA.Daten_von, 

COUNT(CASE WHEN [CommMedia]=1 AND [CallStatus]=3 THEN 1 ELSE NULL END) 

+ COUNT(CASE WHEN [CommMedia]=1 AND [CallStatus]=2 THEN 1 ELSE NULL END) 

+ COUNT(CASE WHEN [CommMedia]=1 AND [CallStatus]=1 AND [TransitionType]=1 THEN 1 ELSE NULL END) 

+ COUNT(CASE WHEN [CommMedia]=1 AND [TransitionType]=5 THEN 1 ELSE NULL END) AS Anwahlversuche, 

COUNT(CASE WHEN [CommMedia]=1 AND [CallStatus]=3 THEN 1 ELSE NULL END) AS ErreichteKunden, 

(SELECT COUNT(Abschluss_Talk24_am) 

	FROM tblAS0002 

	WHERE Id IN 

	(SELECT IdAddress FROM tblAS0002_History WHERE

		[TH].[Time] BETWEEN '20070101' AND '20070601')) AS Abschluss_Talk24_am 

FROM tblAS0002 AS TA 

JOIN tblAS0002_History AS TH ON TH.IdAddress=TA.Id 

WHERE [TH].[Type] = 5 

	AND [TH].[Time] BETWEEN '20070101' AND '20070601'

GROUP BY TA.Daten_von 

ORDER BY TA.Daten_von

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich verstehe jetzt dein Problem nicht? was macht es wenn es mehr als ein Ergebnis gibt?

Und zu dem Beispielselect.....

wie wärs mit einem möglichst kelinen und überschaubaren Testcase der dein problem darstellt?

Also alle nicht relevanten Spalten etc weglassen

Ohne Datenmodell wird man aus dem select nämlich nicht sehr schlau, weil nicht klar ist was dieses select ausgibt und was es ausgeben sollte.

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...