Spalten zweier Abfragen verknüpfen?!

muddin

Mitglied
Hi allerseits!

Ich hab zwei Abfragen, die mir folgendes liefern:
Code:
Abfrage_1:

| SWK_ID | ANZ_SWK_ID | 
|--------+------------|
|    2   |        21  |
|--------+------------|
|    5   |        19  |
|--------+------------|
|    6   |         3  |
|--------+------------|
|    7   |         1  |
|--------+------------|
|    9   |        61  |
|--------+------------|
|   12   |        40  |
|--------+------------|
|   ...  |    ...     |


Abfrage_2:

| SWK_ID | ANZ_SW_ID  |
|--------+------------|
|    5   |        10  |
|--------+------------|
|    9   |         4  |
+--------+------------+

Als Resultat würde ich gerne ANZ_SWK_ID - AN_SW_ID für dieselben IDs haben wollen. Leider bekomm ich das nicht hin...ist ein Subselect hier die richtige wahl?

Ich möchte, dass folgendes herauskommt:
Code:
| SWK_ID | ANZ_SWK_ID - ANZ_SW_ID | 
|--------+------------------------|
|    2   |        21              |
|--------+------------------------|
|    5   |         9              |
|--------+------------------------|
|    6   |         3              |
|--------+------------------------|
|    7   |         1              |
|--------+------------------------|
|    9   |        57              |
|--------+------------------------|
|   12   |        40              |
|--------+------------------------|
|   ...  |    ...                 |

mfg,
derMuddin
 
Hi,

SQL:
SELECT feld1, feld2 - feld3 AS Differenz FROM tabelle

Wenn das nicht das ist, was Du gesucht hast, musst Du Dein Problem nochmal deutlicher beschreiben.

LG
 
Zuletzt bearbeitet von einem Moderator:
Nein, so einfach ist das leider nicht ;)
Diese beiden Tabellen zeigen die ergebnisse zweier Abfragen. Die Abfragen sind:

Abfrage_1:

Code:
SELECT L_T_Softwareklassen.SWK_ID, Count(L_T_Softwareklassen.SWK_ID) AS ANZ_SWK_ID
FROM (T_Software INNER JOIN L_T_Softwareklassen ON T_Software.SW_SOFTWARE_CLASS = L_T_Softwareklassen.SWK_NAME) INNER JOIN (L_T_Komponententypen INNER JOIN L_T_Komponenten ON L_T_Komponententypen.KT_ID = L_T_Komponenten.KO_Komponententypen_ID) ON L_T_Softwareklassen.SWK_ID = L_T_Komponententypen.KT_SoftwareKlasse
GROUP BY L_T_Softwareklassen.SWK_ID;

Abfrage_2:

Code:
SELECT L_T_Softwareklassen.SWK_ID, Count(X_SW_TO_SYS.SW_ID) ANZ_SW_ID
FROM ((T_Software INNER JOIN T_Software AS T_Software_1 ON T_Software.SW_SOFTWARE_SUB_CLASS = T_Software_1.SW_SOFTWARE_CLASS) INNER JOIN L_T_Softwareklassen ON T_Software.SW_SOFTWARE_CLASS = L_T_Softwareklassen.SWK_NAME) INNER JOIN X_SW_TO_SYS ON T_Software.SW_ID = X_SW_TO_SYS.SW_ID
GROUP BY L_T_Softwareklassen.SWK_ID, T_Software.SW_NAME, T_Software_1.SW_NAME;

Die Frage ist, wie ich zu meinem gewollten Ergebnis komme...wie muss ich die beiden Abfragen miteinander verknüpfen? Oder geht das so überhaupt nicht?

mfg,
derMuddin
 
Hat sich erledigt - habe die Lösung in einem anderen Forum gefunden - möchte euch aber die Lösung nicht vorenthalten:
Code:
SELECT s1.swk_id, s1.ANZ_SWK_ID - IIF(s2.ANZ_SW_ID is NULL, 0,s2.AnzahlvonSW_ID)
FROM ([Abfrage_1]) s1
LEFT JOIN ([Abfrage_2]) s2 
ON s1.swk_id = s2.swk_id;

mfg,
DerMuddin
 
Hi,

sorry, ich habe nicht die Zeit, mich durch einen derartigen Zeichensalat zu kämpfen. Du solltest schon wenigstens mal beschreiben, was die Abfragen bewirken. Am besten machst Du dazu ein vereinfachtes Beispiel mit weniger kryptischen Namen. Das Ganze packst Du in SQL-Tags und strukturierst es, dann kann man das auch lesen.

LG
 
Hallo,

sorry, ich habe nicht die Zeit, mich durch einen derartigen Zeichensalat zu kämpfen
LG

Dem schließe ich mich an, es kann nicht sein das man sich durch zeilen kämpfen muß die > 80 Zeichen sind, unformatiert sind. Ich finde auch das ist die Arbeit von dem der Hilfe haben möchte oder Lösungen präsentiert.
@kuddeldaddeldu: super das Du drauf hingewiesen hast.
@muddin: sehr nett der Ansatz die Lösung zu präsentieren.

Viele Grüße
 
Zurück