Les derniers coups de coeur de la redaction |  Guerrero (Le Gendre) 1. L' étranger
|  Ensembles contraires (Les) 1. PremiĂšre partie
|  Billy Wild 2. Le 13Úme cavalier
| ![Communauté (La) 1 [entretiens] premiÚre partie - Futuropolis](http://www.bdgest.com/critiques/images/vignettes/74197.jpg) Communauté (La) 1. [entretiens] premiÚre partie
|  Criminal 2. Impitoyable
|  Spirou et Fantasio (Une aventure de) 4. Le journal d'un ingénu
|
|
Il y a 48 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez iciStephaneA Modérateur
 Messages : 3680 OĂč : Î΀Χ Age : 34 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| Certaines requetes ne fonctionnent plus depuis le passage en V6.
Il s'agit de : Citation :
Auteurs sans Album ni Para-BD
SELECT * FROM auteurs AS d WHERE NOT (SELECT COUNT(*) FROM Albums AS a WHERE a.IdScenariste = d.IdAuteur OR a.IdDessinateur = d.IdAuteur OR a.IdColoriste = d.IdAuteur) AND NOT (SELECT COUNT(*) FROM collaborateurs AS c WHERE c.IdAuteur = d.IdAuteur) AND NOT (SELECT COUNT(*) FROM acheter AS b WHERE b.IdScenariste = d.IdAuteur OR b.IdDessinateur = d.IdAuteur OR b.IdColoriste = d.IdAuteur) AND NOT (SELECT COUNT(*) FROM exlibris AS c WHERE c.IdDessinateur = d.IdAuteur);
|
Ainsi que :
Citation :
Séries sans Album
SELECT SERIES.Titre, ACHETER.IdSerie, ALBUMS.IdSerie FROM ((SERIES LEFT JOIN ACHETER ON SERIES.IdSerie = ACHETER.IdSerie) LEFT JOIN ALBUMS ON SERIES.IdSerie = ALBUMS.IdSerie) LEFT JOIN EXLIBRIS ON SERIES.IDSerie = EXLIBRIS.IdSerie WHERE (ACHETER.IdSerie Is Null) AND (ALBUMS.IdSerie Is Null) AND (EXLIBRIS.IdSerie Is Null);
|
Quelqu'un sait-il quels changements je dois faire afin de faire fonctionner ces requetes?
De plus, afin de reparer une bourde je cherche une requete permettant de faire passer les infos contenues dans le champ perso 1 dans le champ ISBN |
StephaneA Modérateur
 Messages : 3680 OĂč : Î΀Χ Age : 34 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| Tous les pros du SQL se font dorer sur la plage en ce moment?
StephaneA a écrit :
De plus, afin de rĂ©parer une bourde je cherche une requĂȘte permettant de faire passer les infos contenues dans le champ perso 1 dans le champ ISBN 
|
Dans le mĂȘme genre une requĂȘte qui fait passer le champ Perso 3 vers Le champ AchevĂ© d'imprimer m'interresserait aussi fortement.
|
BDGest Chef

Messages : 10744 OĂč : Jura Age : 37 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| La c'est un peu compliqué car le champ achevé d'imprimé est un champ date alors que le champ perso 3 est un champ texte donc l'update ne peux pas marcher dans ce sens |
StephaneA Modérateur
 Messages : 3680 OĂč : Î΀Χ Age : 34 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| BDGest a écrit :
La c'est un peu compliqué car le champ achevé d'imprimé est un champ date alors que le champ perso 3 est un champ texte donc l'update ne peux pas marcher dans ce sens
|
MĂȘme si toutes mes entrĂ©es dans le champ Perso 3 sont au format MM/AAAA ? |
Pascal Forâhan BDĂ©phage
 Messages : 1840 OĂč : Vanves Age : 35 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| Oui, transformer un champ texte en date, c'est pas si simple.
Pour ta deuxiĂšme requĂȘte, sachant que les tables ACHETER et EXLIBRIS n'existent plus, voila ce uqe ça donne pour fonctionner:
Code :
- SELECT SERIES.Titre, ALBUMS.IdSerie
- FROM SERIES
- LEFT JOIN ALBUMS
- ON SERIES.IdSerie = ALBUMS.IdSerie
- WHERE (ALBUMS.IdSerie Is Null);
|
Pour renvoyer l'isbn d'oĂč il vient:
Code :
- update albums set reference = perso1;
|
|
Pascal Forâhan BDĂ©phage
 Messages : 1840 OĂč : Vanves Age : 35 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| Pour ta premiĂšre requĂȘte, j'ai pas compris pourquoi le count(*) ne marche pas.
Cette requĂȘte semble donner la rĂ©ponse voulue:
Code :
- SELECT *
- FROM auteurs AS d
- WHERE NOT (SELECT count(a.IdScenariste)
- FROM Albums AS a
- WHERE a.IdScenariste = d.IdAuteur
- OR a.IdDessinateur = d.IdAuteur
- OR a.IdColoriste = d.IdAuteur)
- AND NOT (SELECT count(c.IdAuteur)
- FROM collaborateurs AS c
- WHERE c.IdAuteur = d.IdAuteur) ;
|
|
Pascal Forâhan BDĂ©phage
 Messages : 1840 OĂč : Vanves Age : 35 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| et ouais, c'est pas encore les vacances.
Pour le perso1 qui est toujours rempli:
Code :
- update album set perso1=null;
|
Pour les auteurs, j'ai effectivement oublié le parabd:
Code :
- SELECT *
- FROM auteurs AS d
- WHERE NOT (SELECT count(a.IdScenariste)
- FROM Albums AS a
- WHERE a.IdScenariste = d.IdAuteur
- OR a.IdDessinateur = d.IdAuteur
- OR a.IdColoriste = d.IdAuteur)
- AND NOT (SELECT count(c.IdAuteur)
- FROM collaborateurs AS c
- WHERE c.IdAuteur = d.IdAuteur)
- AND NOT (SELECT count(p.IdAuteur)
- FROM parabd As p
- WHERE p.IdAuteur = d.IdAuteur);
|
de mĂȘme pour les albums:
Code :
- SELECT SERIES.Titre, PARABD.IdSerie, ALBUMS.IdSerie
- FROM (SERIES
- LEFT JOIN ALBUMS
- ON SERIES.IdSerie = ALBUMS.IdSerie)
- LEFT JOIN PARABD
- ON SERIES.IDSerie = PARABD.IdSerie
- WHERE (ALBUMS.IdSerie Is Null)
- AND (PARABD.IdSerie Is Null);
|
|
eBry Sac à papier ! BDGestiste Avancé
 Messages : 5480 OĂč : Belgique Age : 41 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| Pascal Forhan a écrit :
Pour ta deuxiĂšme requĂȘte, sachant que les tables ACHETER et EXLIBRIS n'existent plus, voila ce uqe ça donne pour fonctionner:
Code :
- SELECT SERIES.Titre, ALBUMS.IdSerie
- FROM SERIES
- LEFT JOIN ALBUMS
- ON SERIES.IdSerie = ALBUMS.IdSerie
- WHERE (ALBUMS.IdSerie Is Null);
|
|
Une variante qui donne les ID série des séries sans album :
Code :
- SELECT IdSerie, Titre
- FROM Series
- WHERE IdSerie NOT IN (SELECT IdSerie FROM Albums)
- ORDER BY Titre
|
|
StephaneA Modérateur
 Messages : 3680 OĂč : Î΀Χ Age : 34 Son top SĂ©ries  Son top Albums  Sa liste d'achat
|
Pour cette requĂȘte j'ai le message d'erreur suivant :
Code :
- Echec de l'ouverture du fichier.
- Description = Le moteur de base de donnĂ©es Microsoft Jet ne peut pas trouver la table ou la requĂȘte source 'album'. Assurez-vous qu'elle existe et qu'elle est correctement orthographiĂ©e.
- Source = Microsoft JET Database Engine
- Help Context = 5003011
- SQL State = 3078
- Error Number = -2147217865
- Native Error Number = -524420377
- RequĂȘte exĂ©cutĂ©e sur la base <C:\Program Files\BDGest Evolution\Steph.mdb> :
- Texte de la requĂȘte :update album set perso1=null;
- Nombre de paramĂštres :=0
- IEWDOLDB=111005
- Module=<WDOLDB>
- Version=<11.00Az>
- Version du MDAC = <2.81.1117.0>.
- [Current Recordset parameters]
- Wanted = LockType = <adLockOptimistic>, Location = <adUseServer>, Type = <adOpenKeyset>, Capacities = <ffffffff>
- Got = LockType = <adLockUnspecified>, Location = <adUseNone>, Type = <adOpenUnspecified>, Capacities = <ffffffff>
- [Connection parameters]
- DataSource = <C:\Program Files\BDGest Evolution\Steph.mdb>
- Initial Catalog = <>
- Provider = <Microsoft.Jet.OLEDB.4.0>
- User = <>
- Password = <>
- Extended Info = <>
- Access = <Read/Write>
- [Connection settings]
- ConnectionTimeout = <-1>
- CommandTimeout = <0>
- [Data format]
- Query Parameter Checked = <0> = <>
- Query Parameter Needing conversion = <0> = <>
- DecimalSeparator = <Undefined>
- DateFormat = <>
- [Cursor settings Match]
- LockType = <adLockUnspecified>, Location = <adUseNone>, Type = <adOpenUnspecified>, Capacities = <ffffffff>
- LockType = <adLockUnspecified>, Location = <adUseNone>, Type = <adOpenUnspecified>, Capacities = <ffffffff>
- LockType = <adLockUnspecified>, Location = <adUseNone>, Type = <adOpenUnspecified>, Capacities = <ffffffff>
|
Sinon le reste fonctionne parfaitement, merci beaucoup.
Quant au champ Perso3 -> Achevé d'imprimer, ben je vais m'y coller à la main  |
Pascal Forâhan BDĂ©phage
 Messages : 1840 OĂč : Vanves Age : 35 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| Gwenhwyfar a écrit :
Exemple de convertion texte => date en Access :
update test set [date] = CDate([texte])
Besoin d'une DBA ?

|
Désolé, je connais pas access en tant que base de données SQL, quasiment tout peut se faire en VB ce qui complique les choses quand on veut faire du SQL, ou pour trouver des infos.
On m'aurait parlé de Postgresql, Oracle, mySql ou SqlServer, j'aurais pu plus facilement répondre Sinon, pour le CDate, on peut définir le format car en l'occurence on a que le mois et l'année et pas le jour, en plus comment on fait pour differencier un "dd/mm/yyyy" d'un "mm/dd/yyyy" ? |
Gwenhwyfar BDGestiste Avancé
 Messages : 6027 OĂč : Wavre (BE) Age : 39 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| Bonne question ...
Je ne suis pas une spécialiste d'Access, que je considÚre plus comme un gadget bureautique que comme une base de donnée (Je vais encore me faire des amis ). J'ai juste fait un test avec des données tronquées MM/YYYY et CDate a automatiquement transformé ça en 01/MM/YYYY.
Les explications de l'aide d'Access sont les suivantes :
Citation :
CDate recognizes date literals and time literals as well as some numbers that fall within the range of acceptable dates. When converting a number to a date, the whole number portion is converted to a date. Any fractional part of the number is converted to a time of day, starting at midnight.
CDate recognizes date formats according to the locale setting of your system. The correct order of day, month, and year may not be determined if it is provided in a format other than one of the recognized date settings. In addition, a long date format is not recognized if it also contains the day-of-the-week string.
|
---------------
Mes ventes
|
Pascal Forâhan BDĂ©phage
 Messages : 1840 OĂč : Vanves Age : 35 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| Gwenhwyfar a écrit :
Je ne suis pas une spécialiste d'Access, que je considÚre plus comme un gadget bureautique que comme une base de donnée (Je vais encore me faire des amis ).
|
Pas de ma part en tout cas Je partage complĂštement ce point de vue....
Merci pour les prĂ©cisions, je serais moins bĂȘte ce soir
|
johnkalak Brestois BDGestiste Avancé
 Messages : 5380 OĂč : F-94 Champigny sur Marne Age : 30 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| BDGest a écrit :
C'est peut ĂȘtre un gadget mais pour une DB locale et perso c'est trĂ©s pratique 
|
MĂȘme dans le cadre pro on fait des choses Ă©tonnantes avec access. Evidemment dĂšs que la base prend de l'ampleur c'est un poil plus compliquĂ© mais essayer de trouver un outil si bon marchĂ© et aussi souple surtout pour des novices....
---------------
Le blog de la collection Soleil Celtic : http://soleilceltic.canalblog.com
|
Gwenhwyfar BDGestiste Avancé
 Messages : 6027 OĂč : Wavre (BE) Age : 39 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| johnkalak a écrit :
MĂȘme dans le cadre pro on fait des choses Ă©tonnantes avec access. Evidemment dĂšs que la base prend de l'ampleur c'est un poil plus compliquĂ© mais essayer de trouver un outil si bon marchĂ© et aussi souple surtout pour des novices....
|
En base locale, je veux bien. Et encore ...
Tout dépend aussi de ce que tu entends par "souple pour les novices".
Des apprentis sorciers qui, en quelques clics de souris, se créaient des bases Access en local avec des tables liées vers des bases Oracle ou SQLServer, mais sans rien comprendre à la façon dont ça fonctionne derriÚre, j'en ai vu pas mal ...
---------------
Mes ventes
|
johnkalak Brestois BDGestiste Avancé
 Messages : 5380 OĂč : F-94 Champigny sur Marne Age : 30 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| Gwenhwyfar a écrit :
Tout dépend aussi de ce que tu entends par "souple pour les novices".
Des apprentis sorciers qui, en quelques clics de souris, se créaient des bases Access en local avec des tables liées vers des bases Oracle ou SQLServer, mais sans rien comprendre à la façon dont ça fonctionne derriÚre, j'en ai vu pas mal ...
|
Je parle de personnes (comme moi par exemple) qui ont quelques notions en base de données et à qui on demande de faire plein de stats dans tout les sens à partir de fichiers plats ou encore de gérer un planning pour une production informatique.
Sans connaĂźtre du tout access j'ai tout de mĂȘme rĂ©ussi Ă rĂ©pondre au besoin preuve qu'access est assez accessible.
Si j'avais du faire ça sous Oracle j'y serais encore. Et je ne te parle pas d'interface graphique
Ceci dit bien entendu je ne m'amuserais jamais à taper dans des bases oracle ou autre. Y'a des DBA pour ça.
Mais effectivement mes bases sont locales et mono utilisateurs. Mais elle répondent largement au besoin.
Bon désolé chef on dévie un peu du sujet
---------------
Le blog de la collection Soleil Celtic : http://soleilceltic.canalblog.com
|
amadigi Rester calme et boire frais ! BDévore
 Messages : 2237 OĂč : Cachan Age : 42 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| Il m'est arrivĂ© un truc bizarre, j'avais Ă©crit une requĂȘte en V5 pour sĂ©lectionner les BD Ă prĂȘter Ă un emprunteur, en fonction des prĂȘts passĂ©s, afin de ne pas lui prĂȘter les mĂȘmes BD et de pouvoir lui prĂȘter les complĂ©ments sur des sĂ©ries :
Citation :
SELECT s.titre, a.num, a.titre
FROM albums a, series s
WHERE a.idserie = s.idserie
AND (s.idserie*1000)+a.idalbum NOT IN
(SELECT (s2.idserie*1000)+a2.idalbum
FROM prets p, albums a2, series s2
WHERE a2.idalbum = p.idalbum
AND p.emprunteur = 'XXXX'
AND a2.idserie = s2.idserie)
AND (s.idserie*1000)+a.idalbum NOT IN
(SELECT (s2.idserie*1000)+a2.idalbum
FROM prets p, albums a2, series s2
WHERE a2.idalbum = p.idalbum
AND p.DateRetour is null
AND a2.idserie = s2.idserie)
ORDER BY s.titre, a.num
|
La multiplication par 1000 permettait de tomber sur un numéro unique en combinant idserie et idalbum
La premiĂšre exclusion est sur les albums dĂ©jĂ prĂȘtĂ©s
La seconde sur les albums en cours de prĂȘt
AprĂšs le passage en V6, lorsque j'exĂ©cute cette requĂȘte, le *1000 se transforme en %1000 et la requĂȘte plante
J'ai résolu temporairement en mettant +100000, mais est-ce que quelqu'un a une idée du pourquoi du comment le * se transforme en % ---------------
*** Participez au classement des éditeurs DL 2008 ***
|
lavielleph BDébutant
 Messages : 1 OĂč : TOULON Age : 42 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| Bonjour,
j'ai une question simple: Perso 4 ne s'affiche pas dans le logicel, si je rajoute ", A.Perso4," dans SQL Album je n'ai toujours pas d'affichage.
J'ai envoyé 2 mails à la hot line sans réponses à ce jour.
Quelqu'un a t il une idée?
SQL Album:
A.EdO, A.Couverture, A.DateAchat, A.PrixAchat, A.DL, A.CoteActuelle, A.Editeur, A.Collection, Sc.Nom, D.Nom, A.Integrale, A.HorsSerie, A.EditionLimitee, A.NoteAlbum, A.Format, A.Etat, A.Reference, A.Possede, A.Commentaire, Co.Nom, S.Style, A.Broche, A.NbPages, Sc.Pseudo, D.Pseudo, Co.Pseudo, A.Perso1, A.Perso2, A.Perso3, A.NumA FROM ALBUMS A, SERIES S, AUTEURS Sc, AUTEURS D, AUTEURS Co WHERE A.IdSerie = S.IdSerie AND A.IdColoriste = Co.IdAuteur AND A.IdScenariste = Sc.IdAuteur AND A.IdDessinateur = D.IdAuteur |
BDGest Chef

Messages : 10744 OĂč : Jura Age : 37 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| Perso4 n'est pas un champ texte comme les autres champs perso. C'est un champ Oui/Non qui peut avoir les valeurs 1/0 .
SELECT A.EdO, A.Couverture, A.DateAchat, A.PrixAchat, A.DL, A.CoteActuelle, A.Editeur, A.Collection, Sc.Nom,
D.Nom, A.Integrale, A.HorsSerie, A.EditionLimitee, A.NoteAlbum, A.Format, A.Etat, A.Reference, A.Possede, A.Commentaire, Co.Nom, S.Style,
A.Broche, A.NbPages, Sc.Pseudo, D.Pseudo, Co.Pseudo, A.Perso1, A.Perso2, A.Perso3, A.NumA , A.Perso4
FROM ALBUMS A, SERIES S, AUTEURS Sc, AUTEURS D, AUTEURS Co
WHERE A.IdSerie = S.IdSerie
AND A.IdColoriste = Co.IdAuteur
AND A.IdScenariste = Sc.IdAuteur
AND A.IdDessinateur = D.IdAuteur
doit marcher ---------------
Article 1 : Le chef a toujours raison
Article 2 : Quand le chef se trompe, se référer à l'article 1
|
amadigi Rester calme et boire frais ! BDévore
 Messages : 2237 OĂč : Cachan Age : 42 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| amadigi a écrit :
Il m'est arrivĂ© un truc bizarre, j'avais Ă©crit une requĂȘte en V5 pour sĂ©lectionner les BD Ă prĂȘter Ă un emprunteur, en fonction des prĂȘts passĂ©s, afin de ne pas lui prĂȘter les mĂȘmes BD et de pouvoir lui prĂȘter les complĂ©ments sur des sĂ©ries :
Citation :
SELECT s.titre, a.num, a.titre
FROM albums a, series s
WHERE a.idserie = s.idserie
AND (s.idserie*1000)+a.idalbum NOT IN
(SELECT (s2.idserie*1000)+a2.idalbum
FROM prets p, albums a2, series s2
WHERE a2.idalbum = p.idalbum
AND p.emprunteur = 'XXXX'
AND a2.idserie = s2.idserie)
AND (s.idserie*1000)+a.idalbum NOT IN
(SELECT (s2.idserie*1000)+a2.idalbum
FROM prets p, albums a2, series s2
WHERE a2.idalbum = p.idalbum
AND p.DateRetour is null
AND a2.idserie = s2.idserie)
ORDER BY s.titre, a.num
|
La multiplication par 1000 permettait de tomber sur un numéro unique en combinant idserie et idalbum
La premiĂšre exclusion est sur les albums dĂ©jĂ prĂȘtĂ©s
La seconde sur les albums en cours de prĂȘt
AprĂšs le passage en V6, lorsque j'exĂ©cute cette requĂȘte, le *1000 se transforme en %1000 et la requĂȘte plante
J'ai résolu temporairement en mettant +100000, mais est-ce que quelqu'un a une idée du pourquoi du comment le * se transforme en %
|
Personne n'a répondu, vous n'avez pas une petite idée ???
---------------
*** Participez au classement des éditeurs DL 2008 ***
|
silversurfâer BDĂ©phile
 Messages : 1317 OĂč : Autriche Age : 32 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| Pour revenir sur cette histoire, il y a peut-ĂȘtre un bug bizarre avec le caractĂšre '*' car j'ai moi aussi une requĂȘte oĂč il est automatiquement remplacĂ© par un'%' ce qui cause une erreur.
VoilĂ ma requĂȘte (nombre d'albums par auteur dans l'ordre en tenant compte des "autres auteurs" ) :
Code :
- SELECT Nom, Prenom, Pseudo, SUM(T) AS Total FROM
- (SELECT Nom, Prenom, Pseudo, count(*) AS T
- FROM AUTEURS, ALBUMS
- WHERE (AUTEURS.IdAuteur=ALBUMS.IdScenariste
- OR AUTEURS.IdAuteur=ALBUMS.IdDessinateur)
- AND Nom <> '<Collectif>'
- GROUP BY Pseudo, Prenom, Nom
- UNION ALL
- SELECT Nom, Prenom, Pseudo, count(*) AS T
- FROM COLLABORATEURS, AUTEURS
- WHERE (AUTEURS.IdAuteur=COLLABORATEURS.IdAuteur)
- AND Nom <> '<Collectif>'
- GROUP BY Pseudo, Prenom, Nom) AS TempTable
- GROUP BY Pseudo, Nom, Prenom
- ORDER BY SUM(T) DESC
|
Et donc le deuxiĂšme COUNT(*) est remplacĂ© par COUNT(%), ce qui fait Ă©chouer la requĂȘte. En remplaçant par un champ (COUNT(COLLABORATEURS.idAlbum)), ça marche.
J'ai essayĂ© de reproduire le problĂšme avec d'autres requĂȘtes, mais sans succĂšs.
|
amadigi Rester calme et boire frais ! BDévore
 Messages : 2237 OĂč : Cachan Age : 42 Son top SĂ©ries  Son top Albums  Sa liste d'achat
| Il y a peut-ĂȘtre un conflit entre la version d'access locale et celle attendue dans BdGest
Sur mon PC, j'ai access 2000, lorsque j'ouvre le fichier mdb de ma base BdGest, il me dit qu'il faut la convertir pour pouvoir la manipuler sous access
je la convertit, je copie-colle ta requĂȘte et l'exĂ©cute telle quelle, aucun pb
mais dĂšs que je fais la mĂȘme chose dans les opĂ©rations sql avancĂ©es de BDGest, l'Ă©toile est transformĂ©e en % et la requĂȘte plante
Chef, n'y aurait-il pas un pb de compatibilité de version entre BdGest et MsAccess local ???
Je testerai au boulot, je dois avoir access 2003, pour voir !! ---------------
*** Participez au classement des éditeurs DL 2008 ***
|
|