OVH Cloud OVH Cloud

Convertion de SQL a Access

4 réponses
Avatar
Francois Soucy
Bonjour à tous,

J'ai pu récupérer un script SQL pour Totaliser le nombre de
visiteur unique sur un site. Mais voila que ce script est pour les base SQL
et moi je suis completement batis sur access. J'ai essayé plusieur variante
mais aucune ne semble fonctionner. Auriez-vous une idée de l'équivalent
access de cette requête?

#############
SELECT TOP 30 datetime AS dt, ISNULL(COUNT(UserHostAddress),0) AS total,
ISNULL(COUNT(DISTINCT UserHostAddress),0) AS [unique]
FROM Stats
GROUP BY datetime
ORDER BY datetime DESC
#############

Je recois en autre des erreur au niveau du mot clé DISTINCT qu'il ne semble
pas vouloir accepter.

Merci pour ceux qui pourront m'aider ou m'éclairer!
Francois

P.S.: En passant, n'existe t-il pas des outils pour faire ce genre de
convertion?

4 réponses

Avatar
Anicet
Bonjour Francois.

Avez-vous essayé ceci :
SELECT TOP 30 datetime AS dt, Nz(COUNT(UserHostAddress),0) AS total,
Nz(COUNT(UserHostAddress),0) AS [unique]
FROM Stats
GROUP BY datetime
ORDER BY datetime DESC

Anicet.


Bonjour à tous,

J'ai pu récupérer un script SQL pour Totaliser le nombre de
visiteur unique sur un site. Mais voila que ce script est pour les base SQL
et moi je suis completement batis sur access. J'ai essayé plusieur variante
mais aucune ne semble fonctionner. Auriez-vous une idée de l'équivalent
access de cette requête?

#############
SELECT TOP 30 datetime AS dt, ISNULL(COUNT(UserHostAddress),0) AS total,
ISNULL(COUNT(DISTINCT UserHostAddress),0) AS [unique]
FROM Stats
GROUP BY datetime
ORDER BY datetime DESC
#############

Je recois en autre des erreur au niveau du mot clé DISTINCT qu'il ne semble
pas vouloir accepter.

Merci pour ceux qui pourront m'aider ou m'éclairer!
Francois

P.S.: En passant, n'existe t-il pas des outils pour faire ce genre de
convertion?





Avatar
Eric
Bonjour,

Access2000 ne supporte pas le Count(Distinct UserHostAdress). Pour les
versions suivantes je ne sais pas car je n'ai pas.

Pour trouver le nb de connexions distinctes pour un jour donné, il va
falloir te créer une fonction perso ou passer par des requêtes
intermédiaires (mais ca risque de ralentir le traitement)
L'équivalent de la fonction IsNull de SQL est sous access nz()


Bonjour à tous,

J'ai pu récupérer un script SQL pour Totaliser le nombre de
visiteur unique sur un site. Mais voila que ce script est pour les base SQL
et moi je suis completement batis sur access. J'ai essayé plusieur variante
mais aucune ne semble fonctionner. Auriez-vous une idée de l'équivalent
access de cette requête?

#############
SELECT TOP 30 datetime AS dt, ISNULL(COUNT(UserHostAddress),0) AS total,
ISNULL(COUNT(DISTINCT UserHostAddress),0) AS [unique]
FROM Stats
GROUP BY datetime
ORDER BY datetime DESC
#############

Je recois en autre des erreur au niveau du mot clé DISTINCT qu'il ne semble
pas vouloir accepter.

Merci pour ceux qui pourront m'aider ou m'éclairer!
Francois

P.S.: En passant, n'existe t-il pas des outils pour faire ce genre de
convertion?




--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Francois Soucy
C'est la mon problème! Le but de cette requête est justement de connaitre le
nb de connexions distinctes par jour. En plus tous cela est utilisé sous
Vb.net... Alors je ne suis pas sur que de faire des requêtes intermédiaires
soit vraiment faisable....

Francois

"Eric" a écrit dans le message de news:

Bonjour,

Access2000 ne supporte pas le Count(Distinct UserHostAdress). Pour les
versions suivantes je ne sais pas car je n'ai pas.

Pour trouver le nb de connexions distinctes pour un jour donné, il va
falloir te créer une fonction perso ou passer par des requêtes
intermédiaires (mais ca risque de ralentir le traitement)
L'équivalent de la fonction IsNull de SQL est sous access nz()


Bonjour à tous,

J'ai pu récupérer un script SQL pour Totaliser le nombre
de visiteur unique sur un site. Mais voila que ce script est pour les
base SQL et moi je suis completement batis sur access. J'ai essayé
plusieur variante mais aucune ne semble fonctionner. Auriez-vous une idée
de l'équivalent access de cette requête?

#############
SELECT TOP 30 datetime AS dt, ISNULL(COUNT(UserHostAddress),0) AS
total, ISNULL(COUNT(DISTINCT UserHostAddress),0) AS [unique]
FROM Stats
GROUP BY datetime
ORDER BY datetime DESC
#############

Je recois en autre des erreur au niveau du mot clé DISTINCT qu'il ne
semble pas vouloir accepter.

Merci pour ceux qui pourront m'aider ou m'éclairer!
Francois

P.S.: En passant, n'existe t-il pas des outils pour faire ce genre de
convertion?


--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
re,

Avec une fonction de ce genre que tu utilises à la place de ton
COUNT(DISTINCT UserHostAddress)

Fonction à copier dans un module global d'Access
Public Function CptUnique(LaTable As String, LeChamp As String, _
LaDate As Date) As Long
Dim rst As DAO.Recordset
Dim strSQL As String
strSQL = "Select Distinct [" & LeChamp & "] from [" & LaTable & "] "
'Penser à modifier le ChampDate par son vrai nom
strSQL = strSQL & "Where [ChampDate]=" _
& Format(LaDate, "#mm/dd/yy#") & ";"
Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
If rst.BOF Then CptUnique = 0: GoTo Sortie
rst.MoveLast
rst.MoveFirst
CptUnique = rst.RecordCount
Sortie:
rst.Close
Set rst = Nothing
End Function

et dans ton SQL ca devient :
SELECT TOP 30 [LeChampDate] as dt, COUNT(UserHostAddress) AS TOTAL,
CptUnique("STATS","UserHostAddress",[dt]) AS [unique]
FROM Stats
GROUP BY LeChampDate
ORDER BY LeChampDate DESC;

Requête à sauver sous Access et à ouvrir sous VB.Net si j'ai bien compris.
Ne pas oublier de charger la référence Microsoft DAO 3.x Object Library


C'est la mon problème! Le but de cette requête est justement de connaitre le
nb de connexions distinctes par jour. En plus tous cela est utilisé sous
Vb.net... Alors je ne suis pas sur que de faire des requêtes intermédiaires
soit vraiment faisable....

Francois

"Eric" a écrit dans le message de news:


Bonjour,

Access2000 ne supporte pas le Count(Distinct UserHostAdress). Pour les
versions suivantes je ne sais pas car je n'ai pas.

Pour trouver le nb de connexions distinctes pour un jour donné, il va
falloir te créer une fonction perso ou passer par des requêtes
intermédiaires (mais ca risque de ralentir le traitement)
L'équivalent de la fonction IsNull de SQL est sous access nz()



Bonjour à tous,

J'ai pu récupérer un script SQL pour Totaliser le nombre
de visiteur unique sur un site. Mais voila que ce script est pour les
base SQL et moi je suis completement batis sur access. J'ai essayé
plusieur variante mais aucune ne semble fonctionner. Auriez-vous une idée
de l'équivalent access de cette requête?

#############
SELECT TOP 30 datetime AS dt, ISNULL(COUNT(UserHostAddress),0) AS
total, ISNULL(COUNT(DISTINCT UserHostAddress),0) AS [unique]
FROM Stats
GROUP BY datetime
ORDER BY datetime DESC
#############

Je recois en autre des erreur au niveau du mot clé DISTINCT qu'il ne
semble pas vouloir accepter.

Merci pour ceux qui pourront m'aider ou m'éclairer!
Francois

P.S.: En passant, n'existe t-il pas des outils pour faire ce genre de
convertion?


--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr






--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr