Suite

Définition Requête pour trouver la valeur de la prochaine date dans la table attributaire ArcSDE ?


J'ai une classe d'entités ArcSDE qui contient un champ de date appelé "SALE_DATE". Cette date de vente représente la date d'offre pour les ventes de droits miniers de la couronne de l'Alberta. Une vente a lieu environ deux fois par mois (une valeur de date toutes les deux semaines environ). Par exemple. pour janvier, il y aurait des valeurs de 1/14/2015 et 1/28/2015. Il n'y a jamais que 4 dates de vente publiées à la fois (4 valeurs de date dans la classe d'entités) et elles tournent comme les ventes actuelles se produisent, une autre est publiée. Je dois créer 4 couches à partir de cette classe d'entités, chacune représentant la prochaine date de vente. L'astuce est que je veux les configurer avec la syntaxe de requête SQL def afin que les dates tournent automatiquement et que je n'aie pas à ajuster manuellement la date de vente, il devrait simplement saisir la prochaine valeur de date disponible qui est disponible.

Voici un exemple de la syntaxe que j'ai pour la première date de vente à venir :

PROVINCE = 'AB' AND SALE_DATE > SYSDATE ET TO_CHAR (SALE_DATE, 'MM') = TO_CHAR (SYSDATE, 'MM') AND TO_CHAR (SALE_DATE, 'DD') < (TO_CHAR (SYSDATE, 'DD') + 2)

Une vue enregistrée (non spatiale) sera très utile pour résoudre ce problème :

  1. Créez une définition de vue Oracle (de préférence dans le schéma où les données spatiales sont stockées) qui identifie les dates distinctes et les classe (probablement du plus ancien au plus récent).

    CRÉER ou REMPLACER voir AB_MINERAL_SALE_DATES_V comme SELECT SALE_DATE, row_number() OVER (ordre par date de vente ASC) comme DATE_RANK FROM (sélectionner sale_date distinct de my_sde_feature_class) ;
  2. Enregistrez cette vue avec SDE et avec la géodatabase d'ArcCatalog en cliquant dessus avec le bouton droit de la souris >> Administrateur >> S'inscrire.

  3. Ajoutez la vue enregistrée à votre MXD avec la classe d'entités

  4. Joignez la vue (maintenant un objet table dans Desktop) à la classe d'entités à l'aide du partageDATE DE VENTEcolonne.
  5. Créez une définition de requête sur le résultat oùDATE_RANK = 1
  6. Copiez la couche résultante trois fois de plus, en changeant la définition de la requête enDATE_RANK = 2, 3, 4
  7. sauvegardez souvent, c'est ArcGIS après tout

Cela pourrait également être accompli par une collection de définitions de vues spatiales où la logique ci-dessus est intégrée dans chaque vue spatiale. De cette façon, les géométries et les dates sont interrogées, classées et réduites de manière sélective pour n'afficher que certaines géométries pour chaque couche. Il y a des avantages et des inconvénients à une approche par rapport à l'autre.

Ma suggestion permet aux données de vente d'être séparées de la géométrie juste au cas où les données seraient dénormalisées -- (exemple : les mêmes droits peuvent être vendus à plusieurs dates.)


Voir la vidéo: Connect to #PostgreSQL from #ArcGIS. Spatial query on #PostGIS for Real-time Analysis. Part 25 (Octobre 2021).