2016-10-27 3 views
3

Ich erstelle eine Kinodatenbank und stehe an einem bestimmten Punkt in meinem Einfügeskript fest. Im Erstellen von Tickets und ich brauche einen Gesamtpreis, dieser Preis ist die Summe von zwei Werten, die ich suche mit mehreren Unterfragen. Hier sind die beiden querysNumerische Abfrageergebnisse zählen

Select toelage 
from klanttype 
where type = 
     (
     Select type 
     from klant 
     where klantnr = (
          Select klantId 
          from Verkoop 
          where verkoopId = 2512 
     ) 
     ); 

select toelage 
from zetelzone 
where zone = (
       select zone 
       from zetel 
       where zetelnr = 130 
); 

ich jetzt auf die Addition der beiden Werte bin stecken zusammen eine Nummer zu erstellen, in der Ticket-Tabelle einzufügen.

+0

Das Semikolon dort aus Testphase war, um mehrere Quell Ziele leicht erweitert, um die beiden einzelnen querys für ihr eigenes Ergebnis zu überprüfen. das sind die beiden Abfragen, aus denen die Ergebnisse hinzugefügt werden müssen – user5951209

+0

Siehe http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me- to-be-a-simple-sql-query – Strawberry

Antwort

1

Sie können beide Abfragen alle über eine Vereinigung zusammenzufassen kombinieren und zusammenzufassen. ist dies auch

select sum(toelage) 
from (
    Select toelage 
    from klanttype 
    where type = 
    (
    Select type 
    from klant 
    where klantnr = (
         Select klantId 
         from Verkoop 
         where verkoopId = 2512 
    ) 
    ) 
    UNION ALL 
    select toelage 
    from zetelzone 
    where zone = (
      select zone 
      from zetel 
      where zetelnr = 130 
    ) 
); 
+0

Dieser hat auch funktioniert. Vielen Dank für Ihre Hilfe – user5951209

1

Versuchen Sie es mit einem Join und einer Sub-Abfrage zu tun:

SELECT t.toelage + (SELECT p.toelage 
        FROM zetelzone p 
        JOIN zetel pp 
        ON p.zone = pp.zone and pp.zetelnr = 130) 
FROM klanttype t 
JOIN klant s 
ON t.kantnr = s.kantid and s.verkoopId = 2512 

Das heißt, wenn diese Abfragen 1 Datensatz zurück. Wenn die Unterabfrage mehr zurückgibt, müssen Sie einen anderen Ansatz wie eine andere Verknüpfung verwenden oder korrelieren.

+0

Ich musste es ein wenig ändern, aber die Logik aus Ihrer Anfrage löste das Problem. Vielen Dank für Ihre Hilfe! – user5951209

1

Sie können mit Vereinigung aller

select sum(toelage) as toelage from (
    Select toelage 
    from klanttype 
    where type = 
      (
      Select type 
      from klant 
      where klantnr = (
           Select klantId 
           from Verkoop 
           where verkoopId = 2512 
      ) 
      ) 
    union all 
    select toelage 
    from zetelzone 
    where zone = (
        select zone 
        from zetel 
        where zetelnr = 130 
    ) 
) as allSubQuerys