Bloqué par une requete SQL - SQL/NoSQL - Programmation
Marsh Posté le 10-09-2008 à 15:46:17
quel sgbd ?
il faudra faire un truc du genre (syntaxe pouvant évoluer d'un sgbd à l'autre, ici, Oracle) :
update licence
set license_status = decode((select count(*) from installation where install_id_licence = license_id), 0, 'Libre', 'Utilisé');
Marsh Posté le 10-09-2008 à 16:03:47
J'ai une erreur.
Citation : Erreur |
Pour le poste j'ai simplifié les tables: la table INSTALLATION a pour vrais nom 'baroque_install' et LICENCE 'baroque_licences'
Marsh Posté le 10-09-2008 à 16:08:55
normal, dans mysql DECODE n'a pas du tout la même signification.
il faut utiliser case (select ...) when 1 then 'Libre' else 'Utlisé' end
Marsh Posté le 11-09-2008 à 08:09:12
J'ai essayé, mais ne connaissant pas du tout la fonction CASE, je pense que a syntax n'est pas bon:
UPDATE baroque_licences SET licence_status = case(
SELECT count( * )
FROM baroque_install
WHERE install_id_licence = licence_id )when 1 then 'Libre' else 'Utilisé'
Marsh Posté le 11-09-2008 à 09:06:19
pour moi elle me semble bonne. à vérifier avec quelqu'un qui a mysql, moi j'ai pas ce sgbd
Marsh Posté le 10-09-2008 à 15:34:52
Bonjour,
J'ai 2 table:
----LICENCE-----
licence_id
licence_status
....
----INSTALLATION---
install_id
install_id_licence
install_Pc
....
La table Licence regroupe toutes les licences connu
la table INSTALLATION regroupe les installation des licence sur les PC.
Je voudrais faire une une requête pour que:
si l'ID d'une licence n'est pas installé sur un PC que son stratut passe en "libre"
si l'ID d'une licence est installé sur un Pc que son statut pas en "Utilisé".
Merci
Message édité par Kestouf le 10-09-2008 à 15:35:42