|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Probleme requete [ SQL Server, MSDE, SQL Express / Requêtes ] (mathvez)
Informations & options pour cette discussion
lundi 21 janvier 2008 à 17:32:47 |
Probleme requete

mathvez
|
Bonjour j'ai une requete SQL:
SELECT Emp_Code, Srv_Code, Sec_Code, Zon_Code, Emp_UserID, Max(datediff(day,isnull(Date_Debut,'2007-01-01'),isnull(Date_Fin,'2007-03-31'))) as NbJour, Sit_Type FROM (SELECT Vue_Employe_Prog_Reconnaissance.Emp_Code, Vue_Employe_Situation.Srv_Code, Vue_Employe_Situation.Sec_Code, Vue_Employe_Situation.Zon_Code, case when Vue_Employe_Situation.Sit_Date_Debut < '2007-01-01' or Vue_Employe_Situation.Sit_Date_Debut is null then '2007-01-01' else Vue_Employe_Situation.Sit_Date_Debut end as Date_Debut, case when Vue_Employe_Situation.Sit_Date_Fin > '2007-03-31' or Vue_Employe_Situation.Sit_Date_Fin is null then '2007-03-31' else Vue_Employe_Situation.Sit_Date_Fin end as Date_Fin , Vue_Employe_Prog_Reconnaissance.Emp_UserID, Vue_Employe_Situation.Sit_Type
FROM Vue_Employe_Situation INNER JOIN Vue_Employe_Prog_Reconnaissance ON Vue_Employe_Situation.Emp_Code=Vue_Employe_Prog_Reconnaissance.Emp_Code WHERE (Vue_Employe_Situation.Sit_Date_Debut <= '2007-01-01' and Vue_Employe_Situation.Sit_Date_Fin >= '2007-01-01' and Vue_Employe_Situation.Sit_Date_Fin <= '2007-03-31') or (Vue_Employe_Situation.Sit_Date_Debut >= '2007-01-01' and Vue_Employe_Situation.Sit_Date_Fin <= '2007-03-31') or (Vue_Employe_Situation.Sit_Date_Debut >= '2007-01-01' and Vue_Employe_Situation.Sit_Date_Debut <= '2007-03-31' and Vue_Employe_Situation.Sit_Date_Fin >= '2007-03-31') or (Vue_Employe_Situation.Sit_Date_Debut <= '2007-01-01' and Vue_Employe_Situation.Sit_Date_Fin >= '2007-03-31') or (Vue_Employe_Situation.Sit_Date_Debut <= '2007-03-31' and isnull(Vue_Employe_Situation.Sit_Date_Fin, getdate()) >= '2007-03-31') ) STOT Group by Emp_Code, Srv_Code, Sec_Code, Zon_Code, Emp_userid, Sit_Type
qui me retourne code service secteur zone user NbJour situation 666092 14 130 1182 BEAULIEU 47 T 666092 17 102 1090 BEAULIEU 65 R 669384 12 102 1012 BELZILEFR 39 R 669384 14 112 1112 BELZILEFR 72 R
Je voudrais savoir ce que je dois rajouter pour faire sortir seulement 1 enregistrement par user selon les 2 conditions suivante: -si la situation est temporaire (T) et + que 45 jour alors tu utilise cet enregistrement -sinon tu utilise l'enregistrement qui a le plus de jour de fais
Merci de votre aide elle sera beaucoup apprécié
|
|
|
mardi 22 janvier 2008 à 13:16:03 |
Re : Probleme requete

KenZara
|
Bonjour, Il me semble que tu ne peux pas faire une requête avec des "if" il faudra dans ce cas, faire une procédure stockée .. Dans quelle type de base de données travailles tu ? Kenza 
|
|
|
mardi 22 janvier 2008 à 14:27:39 |
Re : Probleme requete

mathvez
|
Je travaille avec une petite base de donnée acces ( un projet de bilan médical ) , j'utilise cette requete avec les 3 lignes de code suivant ( codé en VBA (macro) ) .
Dim bdAccidents as ADODB.Recordset Set bdAccidents = new ADODB.Recordset bdAccidents.Open "Requete SQL", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
ensuite je traite mes infos avec
While Not (bdAccidents.EOF) ' Pour chacun des enregistrements
'Code a traiter
bdAccidents.MoveNext
Wend
Pour simplifier la requête:
SELECT Emp_Code, Srv_Code, Sec_Code, Zon_Code, Emp_UserID, Max(datediff(day,isnull(Date_Debut,'2007-01-01'),isnull(Date_Fin,'2007-03-31'))) as NbJour, Sit_Type FROM ( ****Requete select****) GTotal Group by Emp_Code, Srv_Code, Sec_Code, Zon_Code, Emp_UserID, Sit_Type
qui me retourne code service secteur zone user NbJour situation 666092 14 130 1182 BEAULIEU 47 T 666092 17 102 1090 BEAULIEU 65 R 669384 12 102 1012 BELZILEFR 39 R 669384 14 112 1112 BELZILEFR 72 R
Je voudrais savoir ce que je dois rajouter pour faire sortir seulement 1 enregistrement par user selon les 2 conditions suivante: -si la situation est temporaire (T) et + que 45 jour alors tu utilise cet enregistrement -sinon tu utilise l'enregistrement qui a le plus de jour de fais
Merci de votre aide elle sera beaucoup apprécié
|
|
|
mardi 22 janvier 2008 à 20:32:56 |
Re : Probleme requete

mathvez
|
Réponse acceptée !
Finalement pour atteindre mon but, jai utilisé la même requête mais jai utilisé le code de l'application pour ignorer certains enregistrements en fonction des 2 conditions suivantes: -si la situation est temporaire (T) et + que 45 jour alors tu utilise cet enregistrement -sinon tu utilise l'enregistrement qui a le plus de jour de fais
Si jamais quelqu'un trouve la solution pour ajouter ces conditions à la requête SQL, svp me faire parvenir la solution. Mon système deviendrais beaucoup plus performant.
Merci
|
|
|
Cette discussion est classé dans : date, code, employe, vue, situation
Répondre à ce message
Sujets en rapport avec ce message
un gran pb de redondance [ par mehdi911 ]
Mehdi j ai table assid_emp code : code assid matricule :emp date_assid : date d absence
Probleme de requete Date [ par Neocarter ]
Bonjour a tous,J'ai actuellement un petit probleme dans une de mes requetes SQL. En effet, a chaque demarrage, j'ai l'erreur "Fonction 'Date' non defi
optimisation requete sous sql server 7 [ par lulu1537 ]
Bonjour, j'ai une table ainsi crée sous Sql server 7tblCUMULS_ELEMENTS( DATE_VENTE date, CODE_ELEMENT varchar(13), CODE_RAYON varchar(10),
Requête FTS sur vue. [ par gillou1664 ]
Bonjour tout le monde.Bon, je suis pas très bon en SQL et j'ai un petit soucis (enfin gros :p) : J'essaie d'utiliser une fonction de recherche de text
Probleme de date avec une base Paradox [ par Rycku ]
Bonjour, Je travaille avec une base Paradox 7.0 en connection ODBC avec Windev Mon souci est le suivant, j'ai une requete select avec une conditio
Requete oracle SQL fonctions d'agrégation [ par anasiq ]
Bonjour à tous j ai un probleme dans une rekette si quelqu'un vous pouvez m'aider : en 2008 ,quel est le mois qui a connu le passage du plus petit nom
Probleme dans un requete aide moi svp!! [ par cybercop ]
bjr a tt, bon je suis en sql server 2005 express , j'ai 1 prb dans un requette la condition n'est affiche pas aucun resultat .il ma donne un erreur <
Probleme dans un requete aide moi svp!! [ par cybercop ]
bjr a tt, bon je suis en sql server 2005 express , j'ai 1 prb dans un requette la condition n'est affiche pas aucun resultat .il ma donne un erreur
Date et heure avec les procédures stockées [ par jul21 ]
Bonjour,Je travail MS SQL server 2005.J'aimerais faire un formatage de date dans une procédure stockée.La personne passe le paramètre de date jour,moi
Création d'un code SQL, j'ai besoin d'aide s'il vous plait [ par hydroxyproline ]
Bonjour à tous,J'ai un soucis avec un code SQL que je viens de créer, (je ne suis pas du tout informaticien, je suis chimiste, et c'est pourquoi j'ai
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|