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 hop, chatGPT … j’ai copié ton premier message en précisant juste le format de date
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.
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é.