HELP Besoin d'aide sur requête SQL SVP

Bonjour,

J’ai besoin d’aide pour faire une requête SQL SVP, car je ne voudrais pas faire d’âneries en tentant d’adapter ce que j’ai trouvé sur le net.

Mon équipement cmd_id 13931 dans la table « history » ne contient des valeurs qu’à partir du 06/11/2023 (les champs « datetime » et « value »).

Mon équipement cmd_id 12392 contient des valeurs depuis avant et après cette même date.

=> Je voudrais donc ajouter au cmd_id 13931 de la table « history », les valeurs du cmd_id 12392 de la même table « history », mais seulement pour toutes les dates antérieures au 06/11/2023.

Et tu souhaites conserver les données avant et après le 06/11/2023 pour le cmd_id 12392 ou tu t’en fiches ?
Tes données sont dans history ou historyArch ? (elle devraient logiquement plutot etre dans historyArch)
Norbert

Si tu t’en fiches tu changes (update) simplement la valeur du cmd_id pour les lignes concernées

UPDATE `history` SET `cmd_id`= '13931'  WHERE `cmd_id` = '12392'  AND `datetime` <= '2023-11-06 23:59:59'

(et tu sauvegardes bien ton jeedom avant)

Norbert

Merci pour l’aide :slight_smile:

Effectivement c’est la table « historyArch » qui m’intéresse.

Dans la table cible (cmd_id 13931), je veux conserver les valeurs qui existent (et qui sont donc toutes >= au 06/11/2023).

La table source (cmd_id 12392), je ne veux pas qu’elle soit modifiée.

Et hop, chatGPT … j’ai copié ton premier message en précisant juste le format de date :sweat_smile:

Question :

J’ai besoin d’aide pour faire une requête SQL SVP, car je ne voudrais pas faire d’âneries en tentant d’adapter ce que j’ai trouvé sur le net.

Mon équipement cmd_id 13931 dans la table « history » ne contient des valeurs qu’à partir du 06/11/2023 (les champs « datetime » et « value »).

Mon équipement cmd_id 12392 contient des valeurs depuis avant et après cette même date.

=> Je voudrais donc ajouter au cmd_id 13931 de la table « history », les valeurs du cmd_id 12392 de la même table « history », mais seulement pour toutes les dates antérieures au 06/11/2023.
Le format de date est YYYY-MM-DD HH:mm:ss

Reponse

D’accord, vous souhaitez ajouter des enregistrements d’un équipement (cmd_id 12392) à un autre (cmd_id 13931) dans la même table history, mais uniquement pour les dates antérieures au 6 novembre 2023. Voici une requête SQL qui pourrait accomplir cela. Assurez-vous de faire une sauvegarde de vos données avant d’exécuter toute modification.

La requête suivante insère les enregistrements de cmd_id 12392 dans les enregistrements de cmd_id 13931 pour les dates avant le 6 novembre 2023 :

INSERT INTO history (cmd_id, datetime, value)
SELECT 13931, datetime, value
FROM history
WHERE cmd_id = 12392 AND datetime < '2023-11-06 00:00:00';

Cette requête fonctionne comme suit :

  • INSERT INTO history (cmd_id, datetime, value): Cela indique que vous allez insérer des données dans la table history et spécifie les colonnes dans lesquelles les données seront insérées.
  • SELECT 13931, datetime, value FROM history: Cette partie sélectionne les valeurs à insérer. Ici, 13931 est utilisé comme cmd_id pour tous les enregistrements sélectionnés, datetime et value sont sélectionnés de la table history.
  • WHERE cmd_id = 12392 AND datetime < '2023-11-06 00:00:00': Cela filtre les enregistrements pour ne sélectionner que ceux qui ont un cmd_id de 12392 et une date antérieure au 6 novembre 2023.

Assurez-vous que les types de données de cmd_id, datetime et value dans la requête correspondent à ceux de votre table history. Il est également recommandé de tester cette requête sur un jeu de données de test ou une copie de votre base de données pour s’assurer qu’elle fonctionne comme prévu avant de l’exécuter sur vos données de production.

Fadra juste changer history en historyArch

MDR
j’ai pas osé, mais j’y ai pensé !!

Par contre t’es sûr que c’est bon comme requête ?

Pour moi, oui, mais peux pas tester chez moi :yum:

Hello @LMQT,

Et sinon, il y a le bouton image
Sur chaque commande historisée :

Bad

1 « J'aime »

Oui je connais, mais on ne maîtrise pas la plage de dates avec cette fonction.

Via adminer, vous exportez vos 2 tables par sécurité.
Un petit copier coller des valeurs que vous souhaitez ajouter/retirer suivi d’un import du fichier modifié.

Salut,

Le plugin Data Export est capable de faire ça pour information :

  • Extraction des historiques d’une commande sur une période donnée
  • Import d’historique sur une commande