begin process at 2010 03 16 08:56:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Access

 > 

Requêtes

 > 

Calcul de la différence de temps entre deux tuples


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Calcul de la différence de temps entre deux tuples

vendredi 8 juin 2007 à 11:36:16 | Calcul de la différence de temps entre deux tuples

lofo18

Bonjour tout le monde!

Dans le cadre d'un projet pour le domaine médical,
Je dois calculer le temps moyen entre deux interventions,
mais je bloque complétement, je n'arrive pas à faire la différence seulement entre deux tuples qui ce suivent
sans la faire sur tous les autres...

voici un exemple d'une table dans laquelle je doit effectuer ce calcul:

HEURE_DEBUT          HEURE_FIN   

22/01/1997 10:51:24    22/01/1997 11:35:46
28/06/2000 10:02:23    28/06/2000 10:45:18
24/04/2007 13:31:07    24/04/2007 13:33:26
25/04/2007 11:53:25    25/04/2007 11:55:58
25/04/2007 13:01:32    25/04/2007 13:03:20
26/04/2007 09:45:26    26/04/2007 09:54:45
26/04/2007 10:28:11    26/04/2007 10:32:58
02/05/2007 11:18:43    02/05/2007 11:18:54
02/05/2007 13:09:34    02/05/2007 13:09:50
02/05/2007 13:10:24    02/05/2007 13:10:55
02/05/2007 13:14:41    02/05/2007 13:15:06
14/05/2007 15:51:28    14/05/2007 16:00:10


j'ai beaucoup cherché sur internet, mais je n'ai trouvé personne confronté au meme
probleme que moi.

si quelqu'un à une idée pour m'aiguiller je lui en serai infiniment reconnaissant

Par avance, merci.
dimanche 10 juin 2007 à 22:42:41 | Re : Calcul de la différence de temps entre deux tuples

nhervagault

Administrateur CodeS-SourceS
Salut Je ne comprends pas la phrase différence seulement entre deux tuples qui ce suivent Regardes la focntion datediff pour résoudre ton probleme de difference
lundi 11 juin 2007 à 16:50:50 | Re : Calcul de la différence de temps entre deux tuples

lofo18

Salut nhervagault
merci d'avoir pris un peu de temp pour mon problème. et merci pour la fonction datediff que je ne connaissait pas, mais ça ne regle pas complétement mon problème. C'est vrai que je n'ai pas été très clair dans mon explication, je vais essayé d'étre plus précis
 ID INTERV      HEURE_DEBUT(HD)          HEURE_FIN  (HF)
          1               22/01/1997 10:51:24                22/01/1997 11:35:46
          2               28/06/2000 10:02:23                28/06/2000 10:45:18
          3               24/04/2007 13:31:07                24/04/2007 13:33:26
          4               25/04/2007 11:53:25                25/04/2007 11:55:58
          5               25/04/2007 13:01:32                25/04/2007 13:03:20
(c'est le meme exemple que décrit plus haut, mais avec un identifiant, ce sera plus facile)
Ce que je voudrai réaliser c'est une moyenne du temps qui sépare deux interventions soit:
    HeureDebut de l'interv 2   moins  HeureFin  de l'interv 1  
    HeureDebut de l'interv 3   moins  HeureFin  de l'interv 2
    HeureDebut de l'interv 4   moins  HeureFin  de l'interv 3
    etc....
pour réaliser la moyenne de ce calcul.
Avec cette requete:
    select  DISTINCT (H1.HEURE_DEBUT) , H1.HEURE_FIN ,H2.HEURE_DEBUT, H2.HEURE_FIN,            
    cdate(H2.HEURE_DEBUT - H1.HEURE_FIN) as "Temp" 
    From  INTERVENTION as H1 INNER JOIN INTERVENTION as H2 on (H1.HEURE_DEBUT <> H2.HEURE_DEBUT)

j'ai obtenu la différence entres tous les tuples:
    HD interv2 - HF interv1
    HD interv2 - HF interv3
    HD interv2 - HF interv4
etc....
alors que je voudrai juste faire la difference entre le tuple (2 et 1), (3 et 2) etc...
(d'où ma phrase "je n'arrive pas à faire la différence seulement entre deux tuples qui ce suivent sans la faire sur tous les autres...")
j'espère avoir été un peu plus clair.
encor merci à ceux qui consacreront un peu de temps à ce problème.
lundi 11 juin 2007 à 19:44:23 | Re : Calcul de la différence de temps entre deux tuples

nhervagault

Administrateur CodeS-SourceS
Réponse acceptée !
Si tu joue avec ta clé primaire ca doit le faire? WHERE H1.IDINTERV = H2.IDINTERV +1 En esperant qu'il se suive?
lundi 11 juin 2007 à 20:41:42 | Re : Calcul de la différence de temps entre deux tuples

lofo18

En théorie la solution que tu ma donné marche très bien, et je n'avai  pas dutout pensé à ce genre de solution
malheureusement, je me suis aperçu que certaine intervention peuvent être effacée, et de ce fait, leur clé primaire aussi...
donc impossible de savoir si H1.IDINTERV = H2.IDINTERV +1
mais merci quand meme, ça fait deux chose que tu m'apprend ^^
(je début un peu en sql comme tu as du le remarquer)
je vais continuer à chercher, et si je trouve une solution, je la posterai ici. ça pourra peut etre aider quelqu'un (si je trouve....)

lundi 11 juin 2007 à 22:13:14 | Re : Calcul de la différence de temps entre deux tuples

nhervagault

Administrateur CodeS-SourceS
Réponse acceptée !
Salut Tu peux rajouter le numero de ligne a des deux tables. Attention c'est vraiement de la bidouille et ca doit bouffé en performance de manière importante. a moins de creer une colonne. Qui te numerote les lignes avant la requete, while pas fin des enregsitrement macolonnerownumber = i + 1 Pour la table et la tu n'as plus de trou car elles sera mis en permanence en route avant ton calcul. NB si nbenregistrement = max(macolonnerownumber) [- 1] dependant si tu es base en base 0 ou 1 pour ton indexage de ta colonne de numero de ligne. pas la peine de refaire l'update. Bon courage. Extrait d'un post google group Si tu as une cle primaire SELECT (SELECT Count(theField) + 1 FROM tblSource AS A WHERE A.TableID < B.TableID) As RowNumber, TableID, theField FROM tblSource AS B; Sinon Public Function LineNum(lngFldVal As Long, strSource As String, strKey As String) As Long Dim strCrit As String strCrit = "[" & strKey & "] < " & CStr(lngFldVal) LineNum = Nz(DCount(strKey, strSource, strCrit)) + 1 End Function Then it can be called like: SELECT LineNum([TableID],"tblSource","TableID") AS RowNumber, TableID, theField FROM tblSource; SELECT LineNum([QID], "qryNew", "QID") As RowNumber, * FROM qryNew; Note: One way to get a unique QID is to use the key from a source table (qryNew: SELECT tblSource.TableID AS QID...). I also tried an old query I had lying around as qryNew :-): qryNew: SELECT qryOrdinalIPs.IP AS IP1, qryOrdinalIPs.ID FROM tblIPs INNER JOIN qryOrdinalIPs ON tblIPs.ID = qryOrdinalIPs.ID WHERE (((qryOrdinalIPs.theOrdinal)=1)) GROUP BY qryOrdinalIPs.IP, qryOrdinalIPs.ID; SELECT LineNum([ID], "qryNew", "ID") As RowNumber, * FROM qryNew;
lundi 18 juin 2007 à 12:17:06 | Re : Calcul de la différence de temps entre deux tuples

lofo18

Salut et désolé d'avoir mis autant de temps pour répondre.
Mais un GRAND merci à toi, pour le temps que tu as consacré à mon probleme, et surtout à la solution que tu m'as donnée.

avec

SELECT (SELECT Count(theField) + 1 FROM tblSource AS A
WHERE A.TableID< B.TableID) As RowNumber, TableID, theField
FROM tblSource AS B;


j'ai pu numéroter tous mes tuples avec des numéros qui se suivent , et avec

WHERE H1.IDINTERV = H2.IDINTERV +1

j'ai pu réaliser la différence de temps entre deux patients.

encor merci!!!!
mardi 19 juin 2007 à 10:07:16 | Re : Calcul de la différence de temps entre deux tuples

lofo18

Si ça interesse quelqu'un, voila la requête que j'ai obtenu,
j'espere que ça pourra être utils pour quelqu'un bien que ce soit assé spécifique.

Select cdate(R2.HEURE_DEBUT - R1.HEURE_FIN) as 'Temp Entre deux Intervention'
from (
    Select (
        SELECT Count (HEURE_DEBUT)+  1
        FROM (
                SELECT distinct(HEURE_DEBUT), HEURE_FIN
                FROM INTERVENTION
                WHERE HEURE_DEBUT IS NOT NULL
                AND HEURE_FIN IS NOT NULL) AS H1
       WHERE H1.HEURE_DEBUT < H2.HEURE_DEBUT
    ) As IDTMP,H2.HEURE_DEBUT, H2.HEURE_FIN
    FROM(
        SELECT distinct(HEURE_DEBUT), HEURE_FIN
        FROM
        INTERVENTION
        WHERE HEURE_DEBUT IS NOT NULL
        AND HEURE_FIN IS NOT NULL) AS H2
    WHERE H2.HEURE_DEBUT IS NOT NULL
    AND H2.HEURE_FIN IS NOT NULL) as R1,
    (
    Select (
        SELECT Count (HEURE_DEBUT)+  1
        FROM (
                SELECT distinct(HEURE_DEBUT), HEURE_FIN
                FROM INTERVENTION
                WHERE HEURE_DEBUT IS NOT NULL
                AND HEURE_FIN IS NOT NULL) AS H1
        WHERE H1.HEURE_DEBUT < H2.HEURE_DEBUT
    ) As IDTMP,H2.HEURE_DEBUT, H2.HEURE_FIN
    FROM(
        SELECT distinct(HEURE_DEBUT), HEURE_FIN
        FROM
        INTERVENTION
        WHERE HEURE_DEBUT IS NOT NULL
        AND HEURE_FIN IS NOT NULL) AS H2
    WHERE H2.HEURE_DEBUT IS NOT NULL
    AND H2.HEURE_FIN IS NOT NULL) AS R2

WHERE R1.IDTMP+1 = R2.IDTMP


Bon Courage à tous!!


Cette discussion est classée dans : temps, différence, heure, calcul, tuples


Répondre à ce message

Sujets en rapport avec ce message

Temps de réponse sur Reporting Services avec cube OLAP [ par cyr10 ] Bonjour,Je développe des états sous Reporting Services qui sont basés sur un cube OLAP (Analysis Services) que j'attaque donc avec une requete en MDX. Temps d'accès OLAP monstrueux [ par Nephilim ] Salut à tous, J'ai un petit souci depuis une semaine sur un site ASP.NET. Je ne peux être que vague sur le problème étant donné qu'il n'est pas identi Insertion Date / Heure [ par LordBob ] Bonsoir a tous,voila en fait je développe un programme pour lequel je dois effectuer des insertions dans des tables d'une base de donéee. Je n'ai qu'u Calcul de date [ par keks_06 ] Est-t-il possible que je supprime une date qui se trouve depuis 30 jours ou plus dans ma base de données en réalisant une requête SQL?? [SP][SQL Serveur]Comment utiliser un parametre en output dans différentes procédures stockées [ par Arthenius ] Salut a tousVoila je "tente" d'utiliser deux SP en passant des parametres entre elles avec certains en OUTPUT...Par exemple dans une de mes SP je fais probleme actualisation sql [ par Gipsy974 ] bonjour a tous, mon probleme concerne l actualisation de pages html dans cette actualisation, je fais appel a mysql pour recuprere les temps d afichag [MsSQL 2000]Conversion heure GMT [ par ProphetKy ] Bonjour, j'ai un peit soucis avec la mise en production de mon application. J'effectue dans pas mal de requêtes des GetDate(), mais le serveur SQL Temps de connexion à la BD: trop long!!! [ par la_vigiere ] Salut à tous, J'ai fait un programme JAVA qui attend des données sur un port bien particulier. Quand il reçoit des données il se connecte à une base Calcul dans une table acces [ par PAVIQ ] Bonjour, Je débute en Access et je souhaite faire des calcul entre plusieurs champs d'une table et inscrire le résultats dans un autre champ. J'ais Gérer une insertion d'heure par demi-heure [ par VivoBaggio ] Salut. Est-ce que c'est possible de gérer l'insertion d'un cours par demi-heure sur la BDD. Par exemple, selon le code suivant :INSERT INTO COURS (Cod


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,203 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales