Announcement

Collapse
No announcement yet.

ORACLE SQL Abfrage

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

  • ORACLE SQL Abfrage

    Ich habe folgendes Problem:
    ich habe ein SQL (s.Anhang) das mir das folgende Ergebnis auswirft.

    Das entsprechende SQL sieht folgendermaßen aus:

    [highlight=sql]SELECT count(bi.spnr8) AS Anzahl,
    ff.sfreigabebez
    FROM bt_info_freigaben bik,
    bt_info bi,
    fbk_freigaben ff,
    pers_user pu,
    station st
    WHERE 1 =1
    AND bik.nlfdfreigabennr IN (24, 25, 26, 55, 63, 64)
    AND bik.nlfdkbnr = bi.nlfdkbnr
    AND ff.nlfdfreigabennr = bik.nlfdfreigabennr
    AND pu.npers_idnr = bik.npers_idnr
    AND ST.NLFDSTATIONNR = FF.NLFDSTATIONNR
    and bik.dtfreigabe BETWEEN TO_DATE ('16.06.2010 05:30:00','dd.mm.yyyy hh24:mi:ss')
    AND TO_DATE ('16.06.2010 21:30:00','dd.mm.yyyy hh24:mi:ss') GROUP BY ff.sfreigabebez;[/highlight]



    Das Problem was ich habe, ist das in diesem Report doppelte Werte auftreten.
    Sprich in der Spalte Wechselteile dürfte eigentlich nur ein Wert herauskommen...es kommen jedoch 2 werte heraus.
    Es gibt zu den einzelnen Werten Timestamp. Ich habe bereits versucht mit (min) bzw. (max) zu arbeiten...aber damit konnte ich keinen Erfolg erzielen.

    Vielleicht hat noch jemand von euch eine Idee inwieweit ich das SQL einschränken kann....


    gruss
    Attached Files
    Zuletzt editiert von Bernhard Geyer; 22.06.2010, 10:59.

  • #2
    Hallo,

    bitte beachten: Formatierung von SQL in Beiträgen

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Formatierung angepaßt

      Comment


      • #4
        Vermutlich ist die Verknüpfung der Tabellen nicht ausreichend, sprich eine der Tabelle hat
        mehr als die definierten Schlüssel und muss weiter eingeschränkt werden

        Comment


        • #5
          Es fehlt vermutlich nur eine weitere Einschränkung. Ich Tippe mal darauf, dass zwischen bik und ff bzw. ff und st eine weitere Bedingung fehlt

          Aber ohne die Strukturen der Tabellen und deren miteinander zu kennen, ist es schwer zu sagen was wo nicht stimmt.

          Comment


          • #6
            Ich würde Dir auch empfehlen die explizite JOIN Syntax zu verwenden und nicht alles ins WHERE zu packen. Dadurch werden die Kommandos WESENTLICH besser lesbar.

            z.B.

            [highlight=sql]
            SELECT k. KundenNummer, a.AuftragsNummer
            FROM Auftrag a
            JOIN Kunde k ON k.KundenId = a.KundenId
            WHERE a.OrderDate > TO_DATE('01.01.2010','DD.MM.YYYY')
            [/highlight]
            Zuletzt editiert von fanderlf; 28.06.2010, 12:42.

            Comment

            Working...
            X