|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
linda fride Inscription : décembre 2010 Messages : 10 ![]() |
Bonjour, quelqu'un peut-il m'aider à résoudre ce problème ?
langage : SQL TRANSACT je souhaite mettre une condition sur les dates de début, date de fin pour une catégorie de produit : Ma problématique : comment écrire le code qui permettra de dire que : - si datesystème < date de valorisation du mois encours, alors : datedebut = dernier jour de valorisation du mois précédent la datefin datefin = dernier jour de valorisation du mois précédent la datesysteme NB: la date de valorisation normale est une date fin de mois soit logiquement 30 ou 31 mais peut aussi être le 25 ou 26... selon le nombre de jour ouvrés du mois donc si on génère un fichier au 15/12/2010 par exemple, on doit pouvoir avoir une un calcul qui prendra ses valeurs entre les dates du 30/09/2010 au 31/12/2010. Si quelqu'un a une idée,merci d'avance. |
|
|
01
|
|
|
#2 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour
Comment pouvons nous vous répondre si vous ne postez pas au moins la structure de vos tables ? Idéalement un jeu d'essai avec résultats attendus seraient les bienvenus... Postez également la requete que vous avez tenté de faire... |
|
|
10
|
|
|
#3 |
|
linda fride Inscription : décembre 2010 Messages : 10 ![]() |
En effet voici le bout de code en pièce jointe ;
ce que j'essaie de faire : si NumGamme = 8 alors on considère le NumIndicateur 2 sinon on considère soit le NumIndicateur 2, soit le NumIndicateur 36 selon des conditions qui on déjà été définies. NumGamme et NumIndicateurs sont des paramètres qui on déjà été déclaré et appartiennent à la même table. merci d'avance |
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
???
je ne vois pas le rapport entre le code posté et votre question initiale avec le problème de date... concernant le bout de code je pense que votre dernière ligne ne fonctionne pas "comme vous voulez" car vous tentez de comparer indics.NumIndicateur aux valeurs 2 et 36 en pensant que indics.NumIndicateur vaut alors la valeur qui vient de lui être affectée par ligne juste au dessus avec le CASE, ce qui est faux. Votre moteur de base de donnée évalue les conditions avec les valeurs originale (avant update donc). Il ne les évalue d'ailleurs pas forcement dans l'ordre dans lequel ces conditions sont écrites, ceci afin d'optimiser la recherche. Si vous voulez placer une condition sur le résultat de votre case, il vous faut le faire explicitement, a savoir non pas : Code sql :
mais |
||
|
|
00
|
|
|
#5 |
|
linda fride Inscription : décembre 2010 Messages : 10 ![]() |
Merci pour cette réponse.
En effet il n'y avait aucun lien entre ma première question et la seconde tout simplement parce que j'avais mal appréhendé le problème mais ça y est je l'ai résolu. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com