« GLPI/Script SQL » : différence entre les versions
Aller à la navigation
Aller à la recherche
(Page créée avec « {{Sommaire}} Voici quelques exemples de script SQL pour traiter certains aspects. == Exemple de script SQL == Référence : * https://forum.glpi-project.org/viewtopic.php?id=280215 <source> UPDATE glpi_tickets SET status= "1",takeintoaccount_delay_stat="0" WHERE id IN ( SELECT glpi_tickets.id FROM glpi_tickets LEFT JOIN glpi_tickets_users ON glpi_tickets.id = glpi_tickets_users.tickets_id AND glpi_tickets_users.type = "2" WHERE glpi_tickets.id IN ( SELECT... ») |
m (→Voir aussi) |
||
| (9 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 3 : | Ligne 3 : | ||
Voici quelques exemples de script SQL pour traiter certains aspects. | Voici quelques exemples de script SQL pour traiter certains aspects. | ||
== | == Ticket et gestion du technicien affecté == | ||
=== Affichage de certains tickets d'un technicien === | |||
Affichage des tickets d'un technicien : | |||
* avec affichage du numéro du ticket et du numéro du technicien ; | |||
* dont le statut n'est ni résolu ni clos ; | |||
* dont la catégorie a pour numéro 33 ; | |||
* dont un des techniciens affecté a pour numéro 560. | |||
<source lang="SQL"> | |||
SELECT DISTINCT glpi_tickets_users.tickets_id, glpi_tickets_users.users_id | |||
FROM glpi_tickets_users | |||
WHERE glpi_tickets_users.tickets_id | |||
IN ( | |||
SELECT DISTINCT glpi_tickets_users.tickets_id | |||
FROM glpi_tickets, glpi_tickettasks, glpi_tickets_users, glpi_itilcategories | |||
WHERE ( | |||
( | |||
glpi_tickets.status = 1 | |||
OR glpi_tickets.status = 2 | |||
OR glpi_tickets.status = 3 | |||
OR glpi_tickets.status = 4 | |||
) | |||
AND glpi_tickets.id = glpi_tickets_users.tickets_id | |||
AND glpi_tickets.itilcategories_id = 33 | |||
AND glpi_tickets_users.users_id = 560 | |||
) | |||
) | |||
AND glpi_tickets_users.users_id = 560 | |||
; | |||
</source> | |||
=== Modification d'affectation de tickets d'un technicien === | |||
Remplacement du technicien (560) de certains tickets par un autre technicien (762) : | |||
* dont le statut n'est ni résolu ni clos ; | |||
* dont la catégorie a pour numéro 33 ; | |||
* dont le technicien affecté a pour numéro 560 ; | |||
<source> | |||
UPDATE glpi_tickets_users | |||
SET users_id = 762 | |||
WHERE glpi_tickets_users.tickets_id | |||
IN ( | |||
SELECT DISTINCT glpi_tickets_users.tickets_id | |||
FROM glpi_tickets, glpi_tickettasks, glpi_itilcategories | |||
WHERE ( | |||
( | |||
glpi_tickets.status = 1 | |||
OR glpi_tickets.status = 2 | |||
OR glpi_tickets.status = 3 | |||
OR glpi_tickets.status = 4 | |||
) | |||
AND glpi_tickets.id = glpi_tickets_users.tickets_id | |||
AND glpi_tickets.itilcategories_id = 33 | |||
AND glpi_tickets_users.users_id = 560 | |||
) | |||
) | |||
AND glpi_tickets_users.users_id = 560 | |||
; | |||
</source> | |||
== Tâche et gestion du technicien affecté == | |||
=== Modification d'affectation de certaines tâches d'un technicien === | |||
Remplacement du technicien (560) de certaines tâches par un autre technicien (762) : | |||
* dont le statut n'est ni résolu ni clos ; | |||
* dont la catégorie a pour numéro 33 ; | |||
* dont le technicien affecté au ticket a pour numéro 762 ; | |||
* dont le technicien affecté à la tâche a pour numéro 560. | |||
<source> | |||
UPDATE glpi_tickettasks | |||
SET users_id_tech = 762 | |||
WHERE tickets_id | |||
IN ( | |||
SELECT DISTINCT glpi_tickets_users.tickets_id | |||
FROM glpi_tickets, glpi_tickets_users, glpi_itilcategories | |||
WHERE ( | |||
( | |||
glpi_tickets.status = 1 | |||
OR glpi_tickets.status = 2 | |||
OR glpi_tickets.status = 3 | |||
OR glpi_tickets.status = 4 | |||
) | |||
AND glpi_tickets.id = glpi_tickets_users.tickets_id | |||
AND glpi_tickets.itilcategories_id = 33 | |||
AND glpi_tickets_users.users_id = 762 | |||
) | |||
) | |||
AND users_id_tech=560 | |||
; | |||
</source> | |||
=== Requête === | |||
Référence : | Référence : | ||
* https://forum.glpi-project.org/viewtopic.php?id=280215 | * https://forum.glpi-project.org/viewtopic.php?id=280215 | ||
<source> | <source> | ||
UPDATE glpi_tickets SET status= "1",takeintoaccount_delay_stat="0" | UPDATE glpi_tickets | ||
WHERE id IN ( | SET status= "1", takeintoaccount_delay_stat = "0" | ||
WHERE id | |||
IN ( | |||
SELECT glpi_tickets.id | |||
FROM glpi_tickets LEFT JOIN glpi_tickets_users ON glpi_tickets.id = glpi_tickets_users.tickets_id AND glpi_tickets_users.type = "2" | |||
WHERE glpi_tickets.id | |||
IN ( | |||
SELECT glpi_tickets.id | |||
FROM glpi_tickets LEFT JOIN glpi_groups_tickets ON glpi_tickets.id = glpi_groups_tickets.tickets_id | |||
) | WHERE glpi_tickets.status = "2" AND glpi_groups_tickets.groups_id = "1" AND glpi_tickets.is_deleted = "0" | ||
) | |||
AND glpi_tickets_users.type IS NULL | |||
) | |||
; | |||
</source> | </source> | ||
| Ligne 25 : | Ligne 122 : | ||
[[Catégorie:GLPI]] | [[Catégorie:GLPI]] | ||
[[Catégorie:Requête SQL]] | |||
Dernière version du 21 avril 2025 à 18:54
Voici quelques exemples de script SQL pour traiter certains aspects.
Ticket et gestion du technicien affecté
Affichage de certains tickets d'un technicien
Affichage des tickets d'un technicien :
- avec affichage du numéro du ticket et du numéro du technicien ;
- dont le statut n'est ni résolu ni clos ;
- dont la catégorie a pour numéro 33 ;
- dont un des techniciens affecté a pour numéro 560.
SELECT DISTINCT glpi_tickets_users.tickets_id, glpi_tickets_users.users_id
FROM glpi_tickets_users
WHERE glpi_tickets_users.tickets_id
IN (
SELECT DISTINCT glpi_tickets_users.tickets_id
FROM glpi_tickets, glpi_tickettasks, glpi_tickets_users, glpi_itilcategories
WHERE (
(
glpi_tickets.status = 1
OR glpi_tickets.status = 2
OR glpi_tickets.status = 3
OR glpi_tickets.status = 4
)
AND glpi_tickets.id = glpi_tickets_users.tickets_id
AND glpi_tickets.itilcategories_id = 33
AND glpi_tickets_users.users_id = 560
)
)
AND glpi_tickets_users.users_id = 560
;
Modification d'affectation de tickets d'un technicien
Remplacement du technicien (560) de certains tickets par un autre technicien (762) :
- dont le statut n'est ni résolu ni clos ;
- dont la catégorie a pour numéro 33 ;
- dont le technicien affecté a pour numéro 560 ;
UPDATE glpi_tickets_users
SET users_id = 762
WHERE glpi_tickets_users.tickets_id
IN (
SELECT DISTINCT glpi_tickets_users.tickets_id
FROM glpi_tickets, glpi_tickettasks, glpi_itilcategories
WHERE (
(
glpi_tickets.status = 1
OR glpi_tickets.status = 2
OR glpi_tickets.status = 3
OR glpi_tickets.status = 4
)
AND glpi_tickets.id = glpi_tickets_users.tickets_id
AND glpi_tickets.itilcategories_id = 33
AND glpi_tickets_users.users_id = 560
)
)
AND glpi_tickets_users.users_id = 560
;
Tâche et gestion du technicien affecté
Modification d'affectation de certaines tâches d'un technicien
Remplacement du technicien (560) de certaines tâches par un autre technicien (762) :
- dont le statut n'est ni résolu ni clos ;
- dont la catégorie a pour numéro 33 ;
- dont le technicien affecté au ticket a pour numéro 762 ;
- dont le technicien affecté à la tâche a pour numéro 560.
UPDATE glpi_tickettasks
SET users_id_tech = 762
WHERE tickets_id
IN (
SELECT DISTINCT glpi_tickets_users.tickets_id
FROM glpi_tickets, glpi_tickets_users, glpi_itilcategories
WHERE (
(
glpi_tickets.status = 1
OR glpi_tickets.status = 2
OR glpi_tickets.status = 3
OR glpi_tickets.status = 4
)
AND glpi_tickets.id = glpi_tickets_users.tickets_id
AND glpi_tickets.itilcategories_id = 33
AND glpi_tickets_users.users_id = 762
)
)
AND users_id_tech=560
;
Requête
Référence :
UPDATE glpi_tickets
SET status= "1", takeintoaccount_delay_stat = "0"
WHERE id
IN (
SELECT glpi_tickets.id
FROM glpi_tickets LEFT JOIN glpi_tickets_users ON glpi_tickets.id = glpi_tickets_users.tickets_id AND glpi_tickets_users.type = "2"
WHERE glpi_tickets.id
IN (
SELECT glpi_tickets.id
FROM glpi_tickets LEFT JOIN glpi_groups_tickets ON glpi_tickets.id = glpi_groups_tickets.tickets_id
WHERE glpi_tickets.status = "2" AND glpi_groups_tickets.groups_id = "1" AND glpi_tickets.is_deleted = "0"
)
AND glpi_tickets_users.type IS NULL
)
;