Announcement

Collapse
No announcement yet.

Ausschlussverfahren

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

  • Ausschlussverfahren

    Hallo zusammen,

    gibt es eine bessere Möglichkeit als diese, Datensaetze zu finden, die nicht in einer bestimmten Mengen sind als diese?

    [highlight=sql]
    with data as
    (SELECT to_char(231833734) kvnr FROM dual UNION ALL
    SELECT to_char(113127136) kvnr FROM dual UNION ALL
    SELECT to_char(423020362) kvnr FROM dual UNION ALL
    SELECT to_char(680010081) kvnr FROM dual UNION ALL
    SELECT to_char(540618385) kvnr FROM dual UNION ALL
    SELECT to_char(670551713) kvnr FROM dual UNION ALL
    SELECT to_char(273138433) kvnr FROM dual UNION ALL
    SELECT to_char(260651393) kvnr FROM dual UNION ALL
    SELECT to_char(670648774) kvnr FROM dual UNION ALL
    SELECT to_char(811914038) kvnr FROM dual UNION ALL
    SELECT to_char(231553406) nr FROM dual UNION ALL
    SELECT to_char(781712596) nr FROM dual UNION ALL
    SELECT to_char(110722153) nr FROM dual UNION ALL
    SELECT to_char(131108073) nr FROM dual UNION ALL
    SELECT to_char(613845988) nr FROM dual UNION ALL
    SELECT to_char(630791105) nr FROM dual UNION ALL
    SELECT to_char(121608625) nr FROM dual UNION ALL
    SELECT to_char(761084663) nr FROM dual UNION ALL
    SELECT to_char(811736691) nr FROM dual UNION ALL
    SELECT to_char(614170747) nr FROM dual UNION ALL
    SELECT to_char(122105572) nr FROM dual UNION ALL
    SELECT to_char(611268167) nr FROM dual UNION ALL
    SELECT to_char(821324159) nr FROM dual)
    select distinct GOP.NRneu , data.nr from data left join gop
    on data.nr=GOP.NRneu
    where GOP.nrneu is null;

    [/highlight]

    Also ich brauche die NRs aus data, welche nicht in der GOP sind.

    Die nrs habe ich nur als Textdatei, welche ich mir dann wie o.a. aufarbeite.

    Meine Lösung scheint mir nicht so elegant zu sein.

    Viele Grüße und Danke schonmal!

    Martin

  • #2
    Hallo,

    am besten wäre sicher external tables. Ansonsten ist bei max. 1000 dieser Nummern statt der vielen Union all's
    [highlight=sql]SELECT COLUMN_VALUE FROM TABLE(sys.odcivarchar2list('1','2'));[/highlight]
    eine Möglichkeit.

    Gruß

    Ralf

    Comment


    • #3
      Originally posted by ralfb View Post
      Hallo,

      am besten wäre sicher external tables. Ansonsten ist bei max. 1000 dieser Nummern statt der vielen Union all's
      [highlight=sql]SELECT COLUMN_VALUE FROM TABLE(sys.odcivarchar2list('1','2'));[/highlight]
      eine Möglichkeit.

      Gruß

      Ralf
      Die Nummer werden die 1000 Grenze niemals überschreiten.
      Problematisch sind eher je nach Tabelle bis 20.000.000 DS, welche auf diese untersucht werden.

      Danke Dir für Deinen Tipp.

      Viele Grüße

      Martin

      Comment


      • #4
        Hallo,

        vielleicht ist auch

        [highlight=sql]SELECT column_value nr_neu FROM TABLE(sys.odcivarchar2list('1','2','4'))
        MINUS
        SELECT DISTINCT nr_neu from gop/highlight]

        einen Versuch wert. Ein Index wird ja auf nr_neu vorhanden sein.

        Gruß

        Ralf

        Comment

        Working...
        X