Announcement

Collapse
No announcement yet.

SQL Abfrage

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

  • SQL Abfrage

    Hallo zusammen,

    es wird mit folgendem SQL String aus einem Programm eine CSV Datei erstellen.
    PHP Code:
    IF(L.KUN_LAND='DE','101',''),
    IF(
    L.KUN_LAND='AT','666',''),
    IF(
    L.ZAHLART=3,concat('134='L.BSUMME),'') ,
    L.VLSNUMJ.VRENUM,
    IF(
    L.KUN_LAND='DE','1','53'),
    L.KUN_NUML.KUN_NAME1L.KUN_NAME2L.KUN_NAME3L.KUN_STRASSEL.KUN_PLZL.KUN_ORTL.KUN_LANDL.GEWICHT,
    A.TELE1A.FUNKA.EMAILA.UST_NUM
    FROM LIEFERSCHEIN L
    INNER JOIN LIEFERSCHEIN_POS LP on LP
    .LIEFERSCHEIN_ID=L.REC_ID
    LEFT OUTER JOIN JOURNALPOS JP on LP
    .RECHPOS_ID=JP.REC_ID
    LEFT OUTER JOIN JOURNAL J on J
    .REC_ID=JP.JOURNAL_ID
    INNER JOIN ADRESSEN A ON L
    .ADDR_ID=A.REC_ID
    WHERE L
    .REC_ID=:ID
    group by L
    .REC_ID 
    die ersten beiden Zeilen schreiben ein 101 wenn ein "DE" in Zelle Kun_Land oder ein 666 wenn "AT" in Zelle Kun_Land steht. Jetzt möchte ich aber noch ein 5301 geschrieben haben wenn kein "DE" oder kein "AT" in der Zelle Kun_Land steht.

    Kann mir jemand da weiterhelfen ?
    IF(L.KUN_LAND not 'DE' OR not 'AT','5301',''),
    so in der Art ?

    Vielen Dank im vorraus !

  • #2
    Hallo,

    bin mir nicht sicher.

    IF(L.KUN_LAND='DE','101',IF(L.KUN_LAND='AT','666', '5301') ),

    Gruß

    Martin

    Comment


    • #3
      Originally posted by Martin R. View Post

      IF(L.KUN_LAND='DE','101',IF(L.KUN_LAND='AT','666', '5301') ),
      Hallo Martin,

      wäre das gleiche wie dies:

      IF(L.KUN_LAND='DE','101',''),
      IF(L.KUN_LAND='AT','666','5301'),

      Ich brauche aber die leere Spalte wo jetzt '5301' steht.
      Muss irgendwie anders gehen. Vieleicht hab ich es falsch erklärt.

      5301 soll 101 oder 666 ersetzen wenn ein anderer Wert als DE oder AT vorhanden ist.

      Gruß Michael
      Zuletzt editiert von Bitsecure; 30.03.2011, 09:01.

      Comment


      • #4
        Hallo,
        Originally posted by Bitsecure View Post
        ...5301 soll 101 oder 666 ersetzen wenn ein anderer Wert als DE oder AT vorhanden ist.

        [highlight=sql]
        IF(L.KUN_LAND NOT IN ('DE', 'AT'), '5301', IF(L.KUN_LAND = 'DE', '101', ''))
        ...
        [/highlight]

        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


        • #5
          Originally posted by Falk Prüfer View Post
          [highlight=sql]
          IF(L.KUN_LAND NOT IN ('DE', 'AT'), '5301', IF(L.KUN_LAND = 'DE', '101', ''))
          ...
          [/highlight]
          Ahh. Und das AT ?

          So ?

          [highlight=sql]
          IF(L.KUN_LAND NOT IN ('DE'), '5301', IF(L.KUN_LAND = 'DE', '101', ''))

          IF(L.KUN_LAND NOT IN ('AT'), '5301', IF(L.KUN_LAND = 'AT', '666', ''))
          [/highlight]

          oder kann man die Abfrage zusammenfügen ?

          Vielen Dank !
          Michael

          Comment


          • #6
            eher so:
            [highlight=sql]
            IF(L.KUN_LAND NOT IN ('DE', 'AT'), '5301', IF(L.KUN_LAND = 'DE', '101', ''))
            IF(L.KUN_LAND NOT IN ('DE', 'AT'), '5301', IF(L.KUN_LAND = 'AT', '666', ''))
            [/highlight]

            Gruß Falk

            P.S.: Manchmal sollte man auch einfach nur mitdenken...
            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


            • #7
              Originally posted by Falk Prüfer View Post

              P.S.: Manchmal sollte man auch einfach nur mitdenken...
              Hatte ich :-) In dem moment wo Du dies geschrieben hast hab ich die Frage wieder gelöscht. Vielen Dank nochmal !!!

              Comment


              • #8
                Originally posted by Bitsecure View Post
                ...In dem moment wo Du dies geschrieben hast hab ich die Frage wieder gelöscht.
                Und ich habe sie wieder hergestellt, damit ich nicht als Plebs dastehe, der zusammenhangloses Zeug schreibt!

                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


                • #9
                  Originally posted by Bitsecure View Post
                  Hallo Martin,

                  wäre das gleiche wie dies:

                  IF(L.KUN_LAND='DE','101',''),
                  IF(L.KUN_LAND='AT','666','5301'),

                  Ich brauche aber die leere Spalte wo jetzt '5301' steht.
                  Muss irgendwie anders gehen. Vieleicht hab ich es falsch erklärt.

                  5301 soll 101 oder 666 ersetzen wenn ein anderer Wert als DE oder AT vorhanden ist.

                  Gruß Michael
                  Hallo,

                  sorry hatte analog zu decode gedacht.

                  WITH Tabelle1 AS
                  (SELECT '10' rechnungswert, 1 land FROM dual UNION ALL
                  SELECT '20' , 1 FROM dual UNION ALL
                  SELECT '30' , 5 FROM dual UNION ALL
                  SELECT '40' , 2 FROM dual UNION ALL
                  SELECT '50' , 7 FROM dual)
                  select decode(land,'1','de',decode(land,'2','A','othter') ) from tabelle1;

                  Gruß

                  Martin

                  Comment

                  Working...
                  X