Announcement

Collapse
No announcement yet.

Zwei Tabellen, Werte suchen und dann Summe

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zwei Tabellen, Werte suchen und dann Summe

    Hallo Leutz, eventuell kann mir jemand hierbei helfen.

    Es existieren zwei Tabellen (selbe DB) dbo.RtKopf und dbo.RtPosi

    Beispiel der Inhalte:

    dbo.RtKopf
    RtKoKey ;RtKNr ;RetKusNr
    01 071 ;222 ;13432
    01 081 ;233 ;10004
    01 081 ;132 ;10004
    01 091 ;453 ;10004
    .
    .
    dbo.RtPosi

    RtKoKey ;RtKNr ;Rtm ;WarenWertEW
    01 081 ;233 ;12 ;280.00
    01 071 ;111 ;22 ;970.00
    01 081 ;132 ;06 ;121.00
    01 091 ;856 ;05 ;299.00
    .
    .
    .

    Ich möchte gerne die Summe der Zahlen der Spalte Rtm und WarenWertEW für einen bestimmten Kunden (RetKusNr)
    in einer bestimmten Saison (RtKoKey) wissen.

    ich müsste also zuerst in der ersten Tabelle nachsehen, wo die Kundennummer z.B. 10004 in der Saison 01 081
    auftaucht, mir dann die zwei Angaben in der Spalte RtKNr (233 und 132) merken und mit diesen dann in der
    Tabelle dbo.RtPosi wieder nachsehen welcher Wert bei Rtm auftaucht und diese dann zusammenzählen.Das ganze dann auch für die Werte in der Spalte WarenWertEW.
    Und genau dafür bräuchte ich eure Hilfe!
    Fragen werden gerne beantwortet :-))

    Greets

  • #2
    Es ist schon spät und ich weiß nicht mehr, ob meine Ganglien noch so richtig wollen, aber probiere mal das:

    select sum(Rtm), sum(WarenWertEW) from RtPosi
    where RtKnr in (select RtKnr from RtKopf where RetKusNr = 100004 and RtKoKey = '01 081')

    bye,
    Helmut

    Comment


    • #3
      Originally posted by hwoess View Post
      Es ist schon spät und ich weiß nicht mehr, ob meine Ganglien noch so richtig wollen, aber probiere mal das:

      select sum(Rtm), sum(WarenWertEW) from RtPosi
      where RtKnr in (select RtKnr from RtKopf where RetKusNr = 100004 and RtKoKey = '01 081')

      bye,
      Helmut
      Hey super! Das scheint funktioniert zu haben....
      Wenn man es ließt, dann ist es ganr nicht mehr so schwer :-)

      Na dann kannste das bestimmt auch:

      Selbe Anfrage, nur Ausgabe der Summen für drei verschiedene Saisons.
      (01 081, 01,073 und 01 071)
      Jeweils ein eigenes Ergebnis...

      Comment


      • #4
        Originally posted by suiko View Post
        Hey super! Das scheint funktioniert zu haben....
        Wenn man es ließt, dann ist es ganr nicht mehr so schwer :-)

        Na dann kannste das bestimmt auch:

        Selbe Anfrage, nur Ausgabe der Summen für drei verschiedene Saisons.
        (01 081, 01,073 und 01 071)
        Jeweils ein eigenes Ergebnis...
        [HIGHLIGHT="sql"]
        Select S1, S2, RtKoKey
        (select sum(Rtm) AS S1, sum(WarenWertEW) AS S2, RtKoKey
        from RtPosi
        where RtKnr in (select RtKnr from RtKopf where RetKusNr = 100004)
        Group BY RtKoKey) AS X
        WHERE RtKoKey IN ('01 081', '01,073', '01 071')
        [/HIGHLIGHT]

        Comment


        • #5
          Originally posted by ebis View Post
          [HIGHLIGHT="sql"]
          Select S1, S2, RtKoKey
          (select sum(Rtm) AS S1, sum(WarenWertEW) AS S2, RtKoKey
          from RtPosi
          where RtKnr in (select RtKnr from RtKopf where RetKusNr = 100004)
          Group BY RtKoKey) AS X
          WHERE RtKoKey IN ('01 081', '01,073', '01 071')
          [/HIGHLIGHT]
          Wieso schreibst du bei 1. SELECT S1, S2 wenn die Variablen erst beo 2. definiert werden?

          kann ich da auch mit echo ne schnelle Ausgabe schreiben (mache es in PHP)
          Zuletzt editiert von suiko; 10.04.2008, 21:29.

          Comment


          • #6
            So ist es richtig:

            SELECT sum(Rtm) AS summe1, sum(WarenWertEW) AS summe2,
            RtKoKey from dbo.RtPosi
            WHERE RtKNr IN (SELECT RtKNr from dbo.RtKopf WHERE RetKusNr = '10004')
            AND RtKoKey IN ('01 081', '01 071', '01 073')GROUP BY RtKoKey

            oder noch besser:
            SELECT dbo.RtKopf.RtKoKey, sum(dbo.RtPosi.Rtm)AS summe1, sum(dbo.RtPosi.WarenWertEW) AS summe2
            FROM dbo.RtKopf, dbo.RtPosi
            WHERE ( dbo.RtKopf.RtKoKey=dbo.RtPosi.RtKoKey and dbo.RtKopf.RtKNr=dbo.RtPosi.RtKNr )
            AND (dbo.RtKopf.RetKusNr = 10004)
            AND dbo.RtKopf.RtKoKey IN ('01 081')
            GROUP BY dbo.RtKopf.RtKoKey
            Zuletzt editiert von suiko; 11.04.2008, 09:51.

            Comment

            Working...
            X