Requète

Bonjour, à tous
dans un fichier Excel, j'aimerai renvoyé toutes les données supérieures ou égales à 2 mois.
Actuellement j'ai une requète, qui fait ceci:
WHERE (RELEVE_GRANULATION.QUAND>={ts '2008-07-01 03:56:46'})
Que dois je changer pour ce soit bien mes données supérieures à 2 mois
Merci à l'avance des réponses que vous allez me faire.
Configuration: Windows XP
Internet Explorer 6.0

9 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    Quelle base de données utilises-tu, car en fonction de celle-ci il existe plusieurs possibilités.

    A plus
    1. Bonjour,

      Les données viennent d'une base Oracle que je transfère dans un fichier Excel.
      J'espère que cela va te suffire.
      Merci
      1. Bonjour,

        En supposant que la variable RELEVE_GRANULATION.QUAND est une date, le code suivant devrait faire ce que tu veux
        WHERE (MONTHS_BETWEEN(to_date('2008/07/01','YYYYMMDD'),RELEVE_GRANULATION.QUAND) >= 2)

        La fonction MONTHS_BETWEEN calcule le nombre de mois entre la première date et la seconde. La première date doit être la plus grande si tu veux avoir un nombre de mois positifs, exemple si RELEVE_GRANULATION.QUAND est égal à la date 2008/04/01, alors MONTHS_BETWEEN(to_date('2008/07/01',RELELVE_GRANULATION.QUAND) donnera comme résultat 3

        A plus
        1. Bonjour,
          Merci pour la réponse.
          Seulement, dans ce cas ce ne sont pas les valeurs, en l'occurence les dates, qui vont apparaitrent, mais seulement un chiffre.
          Ce que j'aimerai, c'est de ne voir apparaitre les données des deux derniers mois à partir d'aujourd'hui.
          Est ce possible. Merci pour ta patience et ta compréhension.

          A bientôt
          1. Bonjour,

            Peux-tu copier/coller l'ordre SQL complet et je pourrai alors répondre à ta question, je pense que cela ne devrait pas être un problème d'avoir ce que tu veux.
            A plus
            1. Bonjour,

              Voici l'ordre SQL
              SELECT
              RELEVE_GRANULATION.QUAND,
              RELEVE_GRANULATION.xx_xx,
              RELEVE_GRANULATION.xx_xx,
              RELEVE_GRANULATION.xx_xx,
              RELEVE_GRANULATION.xx_xx,
              RELEVE_GRANULATION.xx_xx,
              RELEVE_GRANULATION.xx_xx,
              RELEVE_GRANULATION.xx_xx,
              RELEVE_GRANULATION.xx_xx,
              RELEVE_GRANULATION.xx_xx,
              RELEVE_GRANULATION.xx_xx,
              RELEVE_GRANULATION.xx_xx
              FROM
              xx_xx.RELEVE_GRANULATION RELEVE_GRANULATION
              WHERE
              (RELEVE_GRANULATION.QUAND>={ts '2008-07-01 03:56:46'})
              ORDER BY
              RELEVE_GRANULATION.QUAND

              Si cela te parle mieux alors voila. Et encore merci pour le coup de main
          2. Bonjour,

            Je vais essayer de formuler ma demande d'une façon plus compréhensible.
            Aujourd'hui nous sommes le 12/09/2008.
            Je voudrais faire apparaitre les données comprises entre le 12/07/2008 et 12/09/2008. Et demain nous serons le 13, ce sera donce entre le 13/07 et le 13/09, ainsi de suite.
            Est-ce possible, si oui quel est la commande à écrire.

            Merci
            1. Bonjour,

              La réponse est OUI et Christounet t'a donné la réponse ...

              ;o)
              1. Bonjour,

                Ok, j'ai le droit à un message d'erreur, lorsque j'écris cette commande. Car le format date ne correspond pas.

                moi j'ai le format date plus heure 12/07/2008 03:56:43.

                Merci
                1. Bonjour,

                  Si tu utilises le code suivant, tu ne devrais plus avoir de fautes
                  SELECT ........
                  WHERE (MONTHS_BETWEEN(to_date('2008/07/01','YYYYMMDD'),
                              to_date(to_char(RELEVE_GRAN­ULATION.QUAND,'YYYYMMDD'),'YYYYMMDD') >= 2)

                  A plus