Partage
  • Partager sur Facebook
  • Partager sur Twitter

[MySQL] : création champ durée

Différence entre deux champs existants

Sujet résolu
    10 novembre 2017 à 11:45:09

    Hello les spécialistes du MySQL,

    Je rencontre un problème pour la création d'un nouveau champ "durée" et je voudrais savoir si quelqu'un pourrait m'aider.

    Je plante le décor:

    Je dois exporter une vue d'une jointure entre tables d'une BDD relationnelle vers Elasticsearch en utilisant Logstash et en mettant mes conditions d'exportation dans un fichier JDBC.

    L'une des conditions dans mon statement est de créer un champ qui sera la différence entre 2 autres champs qui sont des durées de temps. Il s'agit d'un temps passé à effectuer une certaine tâche (pour les connaisseurs de Jira, il s'agit du temps logué pour effectuer une tâche sur un ticket)

    Donc en clair, dans mon code suivant, je dois ajouter un champ Tempspassé (différent de timespent) qui contiendra la différence: ci.NEWVALUE - ci.OLDVALUE


    "SELECT ci.OLDVALUE, ci.NEWVALUE, cg.CREATED ci.groupid

    FROM changeitem ci 

    INNER JOIN

    changegroup cg on ci.groupid = cg.id

    INNER JOIN jiraissue ji on ji.id = cg.issueid

    INNER JOIN project pj on pj.id = ji.project

    INNER JOIN nodeassociation na on na.SOURCE_NODE_ID = pj.id

    INNER JOIN projectcategory pjc on pjc.id = na.SINK_NODE_ID

    WHERE  

    pjc.cname = 'UK - archived'

    and

    ci.field = 'timespent'  "

    mes questions:
    1- comment créer ce nouveau champ?
    2- où l'insérer dans le code?
    En vous remerciant par avance pour votre aide.
    Rym

    -
    Edité par RymMichaut 10 novembre 2017 à 12:05:14

    • Partager sur Facebook
    • Partager sur Twitter
      10 novembre 2017 à 17:20:26

      Bonjour,

      Je ne suis pas certain de comprendre où tu vas, mais simplement ajouter ton calcul au SELECT ?

      SELECT
      	ci.OLDVALUE,
      	ci.NEWVALUE,
      	cg.CREATED,
      	ci.groupid,
      	ci.NEWVALUE - ci.OLDVALUE AS TempsPassé
      FROM
      	changeitem ci
      		INNER JOIN changegroup cg
      			ON ci.groupid = cg.id
      		INNER JOIN jiraissue ji
      			ON ji.id = cg.issueid
      		INNER JOIN project pj
      			ON pj.id = ji.project
      		INNER JOIN nodeassociation na
      			ON na.SOURCE_NODE_ID = pj.id
      		INNER JOIN projectcategory pjc
      			ON pjc.id = na.SINK_NODE_ID
      WHERE  
      	pjc.cname = 'UK - archived'
      	AND ci.field = 'timespent'

      Non ?

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        11 novembre 2017 à 21:56:49

        Benzouye a écrit:

        Bonjour,

        Je ne suis pas certain de comprendre où tu vas, mais simplement ajouter ton calcul au SELECT ?

        SELECT
        	ci.OLDVALUE,
        	ci.NEWVALUE,
        	cg.CREATED,
        	ci.groupid,
        	ci.NEWVALUE - ci.OLDVALUE AS TempsPassé
        FROM
        	changeitem ci
        		INNER JOIN changegroup cg
        			ON ci.groupid = cg.id
        		INNER JOIN jiraissue ji
        			ON ji.id = cg.issueid
        		INNER JOIN project pj
        			ON pj.id = ji.project
        		INNER JOIN nodeassociation na
        			ON na.SOURCE_NODE_ID = pj.id
        		INNER JOIN projectcategory pjc
        			ON pjc.id = na.SINK_NODE_ID
        WHERE  
        	pjc.cname = 'UK - archived'
        	AND ci.field = 'timespent'

        Non ?


        Je te remercie car c'est exactement ça... je ne savais pas où mettre la différence dans le code et comme ça ça marche.

         Merci beaucoup et bon week-end :)

        • Partager sur Facebook
        • Partager sur Twitter

        [MySQL] : création champ durée

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown