DS anfügen, wenn Kombination zweier Werte noch nicht vorhanden
micmen
Gesendet: 25.01.13 12:40
Betreff: RE: DS anfügen, wenn Kombination zweier Werte noch nicht vorhanden


Member

Beiträge: 10

vielen Dank,
manchmal ist man blockiert... :-(
Auf die Idee mit einem Outer Join war ich auch schon (erfolglos) gekommen, aber klar, das Datum (ist bei mir das "variable" Feld) mit in eine Datenquelle packen, fertig...

1000 Dank, funktioniert


Und zu meinen Bauchschmerzen mit der Lösung, die geplant Indexverletzungen auslöst:
Es kann ja auch mal "tatsächlich" ein solcher Index-Fehler auftreten, der wegen Inhalten anderer Felder ausgelöst wird. Dann will ich den gemeldet haben und nach Möglichkeit auch behandeln. Wenn jetzt meine Abfrage auch im normalen Betrieb dauernd solche "geplanten Fehler" verursacht, habe ich ja keine Chance mehr, "wirkliche Fehler" zu finden, die aus echten Fehler-Gründen auftreten.

Entweder A) habe ich Recht oder B) ich drücke mich nicht verständlich genug aus oder C) ich sehe das zu eng?
In aller Bescheidenheit - give me an Ääääiii ! :-))


Ich denke, so etwas könnten auch andere suchen und auf ihrer Internet-Suche hierher gelockt werden, darum will ich zum Dank für die Hilfe ;-) diese abstrakten Texte mal um ein (reduziertes) Beispiel ergänzen, daß man deutlicher sieht, um was es geht:
Ich habe eine Personen-Tabelle mit Primärschlüssel auf einem Autowert-Feld Id_P.
Und eine Vorgangs-Tabelle mit einem Verweisfeld vId_P, über das jeder Vorgangs-Datensatz genau einer Person zugeordnet werden kann. Und dann habe ich dort noch das Vorgangsdatum Dat_V und als ID ein Autowert-Feld Id_V.

Klar gibt es noch viel mehr Felder...

Anforderung ist nun die:
Es kommt ein bestimmtes Datum auf den Tisch, sagen wir der 1.5.2013. Dann soll für alle Personen, die bestimmte Filterkriterien erfüllen (Filter über eine Abfrage zu realisieren, filtert nach Inhalten bestimmter Felder der Personen-Tabelle), ein Vorgang mit dem Datum 1.5.2013 angelegt werden. Aber das nur, wenn die Person nicht aus anderen Gründen bereits einen Vorgang für diesen Tag hat (dann kommen die neuen Vorgangs-Informationen später nämlich mit in den bestehenden Vorgang).
Sagen wir, 3 Personen-Datensätze mit den IDs 2, 4 und 6 erfüllen die Filterkriterien und werden von einer Auswahlabfrage als Ergebnis geliefert, für 2 davon (IDs 4 und 6) gibt es noch keinen Vorgang an diesem Tag. Dann sollen in der Vorgangstabelle 2 Datensätze angelegt werden, die in Dat_V beide den 1.5.2013 eingetragen haben und in vId_P einmal die 4 und einmal die 6.

Ich habe jetzt also eine Auswahlabfrage auf Tabelle Person mit den Feldern Id_P und "DummyDatum: xxx", letzteres bekommt seinen Wert aus einem Formularfeld oder einer Funktion. Außerdem hat sie noch Felder, die nicht angezeigt werden, für irgendwelche Filterkriterien.
Diese Abfrage nehme ich zusammen mit Tabelle Vorgang in eine Anfügeabfrage und verknüpfe die Abfrage und die Tabelle mit 2 Beziehungen:
MeineAbfragePerson LEFT JOIN Vorgang ON (MeineAbfragePerson.DummyDatum = Vorgang.Dat_V) AND (MeineAbfragePerson.Id_P = Vorgang.vId_P)
und außerdem noch dem Kriterium:
WHERE (Vorgang.Id_V) Is Null

hoffe, das interessiert irgendwann mal irgendwen...
:-)
Top of the page Bottom of the page