Je suis relativement nouveau à Oracle et je passe la meilleure partie de la journée à essayer d'écrire une requête pour renvoyer les totaux YTD et YTD fiscal sur une colonne.
Une version simplifiée de la table avec uniquement des looks de colonnes pertinentes Quelque chose comme: p> Lorsqu'une commande est une charge récurrente qui réapparaît dans chaque facture basée sur la logique ailleurs. Ce que j'ai besoin de revenir, c'est le coût total pour une facture donnée avec le total de la YTD pour le code de commande ainsi que le YTD fiscal (début 1er novembre) pour chaque code de commande. Pour cet exemple de jeu, ma requête devrait revenir à la facture 509: p> à partir de maintenant, tout ce que j'ai est: p>
3 Réponses :
Vous pouvez utiliser en fonction de Démo KBD> P> P> P> P> P> agrégation conditionnelle code> tel que
croix code> parmi votre table et dérivé
invoice_date code> à partir de
: invoice_num code> Variable de liaison: p>
Ceci est en fait assez proche de ce que j'avais (en ce qui concerne YTD car je n'avais pas encore aventuré au fiscal YTD). Cela a peut-être pu être quelque chose que j'ai échoué à clarifier mais je ne suis pas garanti d'exécuter la requête dans le même délai que la facture_date. Il semble que l'utilisation de sysdate code> retournerait un total de YTD incorrect si je pouvais sélectionner une facturation_num survenue dans, disons, 2018. Pensées? Merci!
Il suffit de remplacer sysdate (date actuelle) avec une valeur de date littéral à partir de 2018, Date'2018-04-05 ', alors vous obtiendriez le coût de la gamme Date'2017-11-01' et date'2018-10-31 'En tant que fiscal_ytd, et pour la gamme Date '2018-01-01' et date'2018-10-31 'comme YTD_TOTAL, par exemple, vous pouvez sélectionner de manière dynamique à partir de l'année actuelle et / ou des années précédentes @Michaelcole
Cette instruction SELECT sera exécutée en tant que requête hibernate qui n'a donc que la facture_num, est-il un moyen de, d'abord, obtenez la facture Invoice_Date de cette facture, puis utilisez cette date particulière plutôt que de sysdate ou une date de saisie manuelle?
Sinon, je pourrais avoir une requête séparée saisir la facture_date puis passer cette date dans la requête que vous avez fournie. Je voulais juste voir s'il y a un moyen de retirer l'homme du milieu ici.
Vous pouvez utiliser Cette solution utilisera des index sur le acclamations !! p> p> agrégation conditionnelle code> comme suit:
invoice_date code> s'il y en a. < / p>
Ceci est en fait assez proche de ce que j'avais (en ce qui concerne YTD car je n'avais pas encore aventuré au fiscal YTD). Cela a peut-être pu être quelque chose que j'ai échoué à clarifier mais je ne suis pas garanti d'exécuter la requête dans le même délai que la facture_date. Il semble que l'utilisation de sysdate code> retournerait un total de YTD incorrect si je pouvais sélectionner une facturation_num survenue dans, disons, 2018. Pensées? Merci!
Votre exercice commence en novembre. Cela rend l'agrégation un grand délicat, en particulier une version qui fonctionnera à la fois en octobre et em> novembre. Cependant, l'exercice financier peut être calculé en ajoutant deux mois à la date et à l'extraction de l'année. Si nous prenons cette approche, une méthode est la suivante: p> ici est un dB <> violon. p> p>
Ceci est en fait assez proche de ce que j'avais (en ce qui concerne YTD car je n'avais pas encore aventuré au fiscal YTD). Cela a peut-être pu être quelque chose que j'ai échoué à clarifier mais je ne suis pas garanti d'exécuter la requête dans le même délai que la facture_date. Il semble que l'utilisation de sysdate code> retournerait un total de YTD incorrect si je pouvais sélectionner une facturation_num survenue dans, disons, 2018. Pensées? Merci!
@Michaelcole. . . Je suis un peu confus. Si vous voulez cela à une autre date, utilisez simplement cette date au lieu de sysdate code>. Vos exemples de données suggèrent que vous souhaitez la dernière année / l'exercice financier. Vous avez une ligne avec une date d'octobre 2019 et il n'est pas inclus dans les résultats.