IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Requête assez complexe


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 172
    Points : 43
    Points
    43
    Par défaut Requête assez complexe
    Bonjour chers internautes,

    Voila je dois rajouter un filtre dans une requete qui est déjà bien assez complexe.
    Je vous montre la requete :
    SELECT
    1
    , NULL, NULL
    , CAST(acy.S3_COL05N AS int), acy.S3_COUNCIL, acy.S3_FAMILY, acy.S3_SUB_FAMILY, acy.S3_DESTINATION_REGION, acy.S3_DESTINATION_REGIONAL_UNIT, acy.S3_DESTINATION_COUNTRY, acy.S3_DESTINATION_UNIT
    , 0
    , acy.S3_PROJECT_NUMBER, acy.S3_ACTIVITY_NUMBER, acy.S3_ACTIVITY_NAME, acy.S3_SYNERGY_FLAG, acy.S3_BUSINESS_GROUP, acy.S3_BUSINESS_DIVISION, acy.S3_BUSINESS_UNIT,
    acy.S3_SOURCING_RESP, acy.S3_ACTIVITY_TYPE, acy.S3_ACTIVITY_DESCRIPTION, acy.S3_CURRENCY
    , CASE WHEN acy.S3_ACTIVITY_STATUS = 'R' THEN 'R' ELSE 'NR' END, acy.S3_REPORTING_STATUS
    , acy.S3_ACTIVITY_OWNER, acy.S3_ACTIVITY_COMMENT, acy.S3_CHANGE_COMMENT
    , 1
    FROM S3_ACTIVITY acy
    WHERE acy.S3_CRULE_UPDATE_FLAG = 1
    AND acy.S3_LATEST_ACTIVITY_FLAG = 'Y'
    AND CAST(acy.S3_COL05N AS int) >= CAST(acy.S3_YEAR_ZERO AS int)
    AND CAST(acy.S3_COL05N AS int) <= CAST(acy.S3_YEAR_ZERO AS int) + 2
    AND NOT EXISTS (SELECT 0 FROM S3_ACTION WHERE S3_COL05N = 1 AND S3_ACTIVITY_NUMBER = acy.S3_ACTIVITY_NUMBER)
    AND (IsNull(acy.S3_AXIS_VOLUME_LOC,0) > 0 OR IsNull(acy.S3_AXIS_SAVING_LOC,0) > 0);

    Voila ce quej e dois faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    This last condition should be changed to Action Year >= Year Zero AND Action Year <= Year of the Price Valid Till Date + 1
    Note: there can never be more than 4 years: so, if Year of Price Valid Till Date is > Year Zero + 3, the last year should be Year Zero + 3
    Je dois changer ceci
    AND CAST(acy.S3_COL05N AS int) <= CAST(acy.S3_YEAR_ZERO AS int) + 2
    par
    AND CAST(acy.S3_COL05N AS int) <= CAST(acy.price_valid_till_date) + 1
    Le problème est que je ne comprend pas enfin je ne sais pas comment faire pour lui mettre en place une condition avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Year of Price Valid Till Date is > Year Zero + 3, the last year should be Year Zero + 3
    Pourriez vous m'aider à faire cela dans la requête ?

    Merci

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 920
    Points : 51 712
    Points
    51 712
    Billets dans le blog
    6
    Par défaut
    IF n'existe pas en SQL. Vous devez utiliser CASE. A lire : http://sqlpro.developpez.com/cours/sqlaz/select/#L7

    A +

Discussions similaires

  1. Requête assez complexe
    Par Omega15 dans le forum SQL
    Réponses: 3
    Dernier message: 09/02/2012, 17h07
  2. [AC-2003] requête assez complexe
    Par eric232 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/08/2011, 16h31
  3. [1.x] Requêtes assez complexes
    Par blasil64 dans le forum Symfony
    Réponses: 5
    Dernier message: 20/03/2010, 15h15
  4. [AC-2003] Requête assez complexe
    Par Apopis01 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 30/12/2009, 12h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo