                  :when (not (str/blank? gemeinschaft))]
              {:name gemeinschaft}))))
 
-
 (defn unmittelbar? 
   ([{:keys [Übergeordnetegruppe Gruppe]}] 
    (= Übergeordnetegruppe Gruppe))

   (first)
   (str ";")))

(print
  (let [persons (map parse-person old)
        gruppierungen (disj (into #{} (map #(select-keys % #{:Übergeordnetegruppe :Gruppe})) persons) {})] 
      (str "BEGIN;\n"
        (str/join "\n"
          (concat
            (map format-sql
              (concat
                [(gruppierungs-typ-sql)]
                (gruppierungen-sql (topo-sort gruppierungen))
                (let [ordensgruppen (into #{} (map #(select-keys % #{:Ordensgruppe :Älterengemeinschaft})) persons)]
                  [(älterengemeinschaften-sql (set (map :Älterengemeinschaft ordensgruppen)))
                   (ordensgruppe-types-sql (disj (set (map ordensgruppe-typ (map :Ordensgruppe ordensgruppen))) nil))
                   (ordensgruppen-sql ordensgruppen)])))
            #_(map person-sql persons)))
        "\nCOMMIT;")))
  (let [not-blank? (complement str/blank?)]
    (cond-> []
      (not-blank? Telefonnummer1)
      (conj {:label (or Telefonbezeichner1 "")
             :nummer (build-number Vorwahl1 Telefonnummer1)})
      
      (not-blank? Telefonnummer2)
      (conj {:label (or Telefonbezeichner2 "")
             :nummer (build-number Vorwahl2 Telefonnummer2)})
      
      (not-blank? Telefonnummer3)
      (conj {:label (or Telefonbezeichner3 "")
             :nummer (build-number Vorwahl3 Telefonnummer3)}))))

(defn parse-out-tel [person]
