Announcement

Collapse
No announcement yet.

2 Berechnungen mit 2 where Bedingungen auf die gleiche Spalte

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

  • 2 Berechnungen mit 2 where Bedingungen auf die gleiche Spalte

    Hallo zusammen,
    bin neu hier :-)

    Also vielleicht habe ich meinen Titel nicht optimal gewählt, sorry ...

    also ich versuche mal mein Anliegen zu erklären:


    Ich möchte mit einer Select Abfrage 2 verschiedene Mittelwerte aus der gleichen Spalte berechnen.
    Der erste Mittelwert berechnet sich durch die where Bedingung einer Spalte und der 2. Mittelwert aus der gleichen where Spalte mit einen anderen Wert.

    Einzeln würden die Select Abragen so aussehen:


    1. Abfrage:

    Select avg(Spalte1) from Tabelle where Spalte2 = "x"

    2. Abfrage

    Select avg(Spalte1) from Tabelle where Spalte2 = "y"

    Nun möchte ich beide Abfragen in einer ausführen:

    In etwa so:

    Select avg(Spalte1) as MW1, avg(Spalte1) as MW2 where Spalte2 = "X" , "y" ???????????


    Also in MW1 die Mitelwerte wenn Spalte2 = x und in MW2 die Mittelwerte wenn Spalte2 = y

    Komme da nicht weiter, könnte mir da jemand einen Tipp geben?



    Zur Info : Oracle Datenbank

    Gruß
    Markus
    Zuletzt editiert von Spiders0815; 09.10.2012, 17:35.

  • #2
    [HIGHLIGHT=SQL]
    Select decode(Spalte2, 'X', avg(Spalte1), null) as MW1,
    decode(Spalte2, 'Y', avg(Spalte1), null) as MW2
    where Spalte2 in('X','Y')
    [/HIGHLIGHT]
    Gruß, defo

    Comment


    • #3
      Vielen Dank defo,

      so hat es funktioniert :-)

      Habe nur noch
      [sql]
      from Tabelle
      [/sql]

      dazu eingebaut ;-)

      Comment


      • #4
        Oh, ich hatte mich aufs Wesentliche konzentriert
        Gruß, defo

        Comment


        • #5
          nur darauf kommts auch an ;-)


          Nur noch zur Info ich habe diesesn Select Befehl über Olebdb Adapter in vb.net in einem String gepackt und es funktioniert darüber prima.

          ich nutze es um ein Chart in vb.net zu erstellen und so die Daten dort als Graphen einzubinden :-)

          Comment


          • #6
            Originally posted by Spiders0815 View Post
            ... ich habe diesesn Select Befehl über Olebdb Adapter in vb.net in einem String gepackt ...
            Hoffentlich hast du es so gemacht, dass keine SQL-Injection möglich ist. Bei deinem Problem klingt es zwar nicht danach; aber die Fomulierung "in einen String gepackt" lässt bei mir alle Alarmglocken schrillen. Jürgen

            Comment


            • #7
              hmm so siehts im original aus:

              Code:
              Dim sQuery1 As String = "SELECT paingroup, decode(paingroup, 'naive', avg(active_taste), NULL) AS MW1, decode(paingroup, 'Chung', avg(active_taste), NULL) AS MW2, (TO_Char(session_date,'dd.mm.yy')) as Trainingday from leverpress WHERE paingroup IN('naive','Chung')group by paingroup,(TO_Char(session_date,'dd.mm.yy'))order by paingroup, (TO_Char(session_date,'dd.mm.yy'))"
              
               Chart2.DataSource = fillControlDatatable(sQuery1)
              
              
                     Chart2.Series("Series1").Name = "Naive MW"
                     Chart2.Series("Naive MW").XValueMember = "Trainingday"
                     Chart2.Series("Naive MW").YValueMembers = "MW1"
               
              
                      Chart2.Series("Series2").Name = "Chung MW"
                      Chart2.Series("Chung MW").XValueMember = "Trainingday"
                      Chart2.Series("Chung MW").YValueMembers = "MW2"
              die Funktion fillControlDatatable() liefert einen Datatabel zurück...

              In den Chart habe ich im Moment noch das Problem das die die Daten nebeneinander angezeigt werden auf der X-Achse an Stelle parallel
              lever.jpg



              Comment


              • #8
                Wie ich schon sagte: Bei deinem Problem sieht es nicht danach aus. SQL-Injection ist dann möglich und riskant, wenn ein (unbedarfter oder gefährlicher) Anwender einen Text eingeben kann, der ungeprüft und direkt in den String eingebaut wird. Du scheinst aber nur vorhandene Daten zu verwenden; das ist unproblematisch. Jürgen

                Comment


                • #9
                  ok,
                  trotzdem vielen Dank für die Info

                  Gruß
                  Markus

                  Comment

                  Working...
                  X