Bonjour.
Afin de créer une vue, j'ai du écrire plusieurs fonctions de calcul. J'ai écrit les fonctions et je les ai testés de manière individuelle, et elles fonctionnent toutes.
J'ai donc entrepris d'écrire une vue, dont voici le code :
<<
CREATE VIEW systemplus.V_ACTIONS
(
ROWID,
NUMLOCAL,
NUMTELLOCAL,
PARAMETRES,
NUMTELQUIRAPPELLE,
TENTATIVES,
RAPPELDATEHEURE,
RESETTYPE,
RESETDATEHEURE,
NUMTELMOTIF,
MOTIF,
MOTIFDATEHEURE,
STATUSMODE,
DATEHEURE,
MODULECODE,
MODULEZONE,
MODULEFCT,
DUREERAPPEL,
DUREERESET
)
AS
SELECT
events_backups.id,
fct_FindRoomNumberFromRoomId (room_id),
fct_FindRoomPhoneNumber (room_id),
fct_ReturnText ('N/A'),
events_backups.event_data,
fct_ReturnText ('N/A'),
events_backups.time,
fct_FindResetType (time, room_id),
fct_FindResetDateHeure (time, room_id),
fct_ReturnText ('N/A'),
fct_FindMotif (time, room_id),
fct_FindMotifDateHeure (time, room_id),
fct_ReturnText ('N/A'),
fct_FindTimeAppelModule (time, room_id),
modules.code,
modules.zone,
fct_ReturnText ('N/A'),
fct_CalculDureeRappel (time, room_id),
fct_CalculDureeReset (time, room_id)
FROM events_backups, rooms, modules
WHERE event like 'ROOM-CALLED'
AND events_backups.room_id = rooms.id
AND rooms.module_id = modules.id
/*AND time > '2007-02-09 10:00:00'*/;
>>
Lorsque j'entre cette ligne, il me retourne le message d'erreur :
<ERROR 1172 (42000): Result consisted of more than one row>
D'après mes recherches, ceci arrive lorsque l'on utilise un SELECT ... INTO ... ce qui est le cas dans les fonctions.
J'ai l'impression que MySQL fait :
fonction_1(résultat1), fonction_1(résultat2), fonction_1(résultat3), ...
plutot que :
fonction_1(résultat1), fonction_2(résultat1), fonction_3(résultat1), ...
fonction_1(résultat2), fonction_2(résultat2), fonction_3(résultat2), ...
...
Est-ce que quelqu'un a une idée pour faire fonctionner la vue ?
Merci d'avance.
Mad Ant
Partager