Accueil > Forum > > > > Probleme requete
Probleme requete
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ée 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
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
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),
probleme oracle [ par celeste87 ]
Slt à tous j'ai un probleme avec mon package MAJ_SALARIES(qui permet de mettre à jour la table salarié et pour un salarié si j'insere un enfant je met
manipulation des dates [ par sparo83 ]
Bonsoir à vous, je travail sous oracle 10g en manioulant les entrepots de données et mon probleme est le suivant : j'ai une vue matérialisée 'temps'
Sélectionné uniquement la date de demain [ par vincej ]
Bonjour, Je cherche a récupérer uniquement les enregistrements qui date de demain. voila comment j'ai précédé : [code=php]$itomorrow = time () + 86
ORDER BY SPECIFIQUE [ par arnaudmuse ]
Bonjour je suis a la recherche d'un code pour pouvoir faire un order by specifique, je m'explique. Disons que je récupère par le biais d'une requette
sqlserver datetime [ par koukou09 ]
Salut, je veux faire une insertion des données dans sqlserver à partir d'un frame dans parmi les composant une date qui est définit comme type date
Calcul conditionnel dans un état [ par SElKettani ]
Bonsoir Access : J'ai à effectuer un calcul conditionnel : Dans un formulaire j'ai une zone de liste qui m'affiche la liste des personnes consultées
Livres en rapport
|
Derniers Blogs
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE [WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE[WP7] JE NE VEUX PAS D'UN NOUVEL IPHONE par FREMYCOMPANY
Je pense qu'ils ont besoin d'une piqure de rappel chez Microsoft : c'est bien gentil d'avoir une interface jolie, mais si c'est pour avoir un truc qui ne convainct pas dedans, c'est peine perdue.
---->
Système ouvert ----> Fermé ?
P...
Cliquez pour lire la suite de l'article par FREMYCOMPANY
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|