bonjour
j'arrive pas a exécuter cette requete sous sql server :
select DateEnr,M, iif(DATEPART(hour,HeureEnr) > 4,1,0) as test
from QteReel
erreur : incorrect syntax near '>'
???? merci
bonjour
j'arrive pas a exécuter cette requete sous sql server :
select DateEnr,M, iif(DATEPART(hour,HeureEnr) > 4,1,0) as test
from QteReel
erreur : incorrect syntax near '>'
???? merci
donne sous sql serveurselect DateEnr,M, iif(DATEPART(hour,HeureEnr) > 4,1,0) as test
from QteReel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select DateEnr,M, case when DATEPART(hour,HeureEnr) > 4 then 1 else 0 end as test from QteReel
Normal : iif n'existe pas dans le langage SQL et par conséquent ne se trouve pas dans SQL Server. Il s'agit d'un "truc" spécifique à Access et une cochonerie équivalente ! ;-)
Dans le langage SQL qui est une norme, il y a le CASE pour répondre à ce genre de problématique. Lisez ce que j'ai écrit à ce sujet :
http://sqlpro.developpez.com/cours/sqlaz/select/#L7
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
merci, par contre si je rajoute
select DateEnr,M, sum(iif(DATEPART(hour,HeureEnr) > 4,1,0))as test
from QteReel
group by DateEnr
??
le iff n'existe pas !!!!!!!!!!!!!!!!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT DateEnr,M, SUM(case when DATEPART(hour,HeureEnr) > 4 then 1 else 0 end) AS test FROM QteReel group by DateEnr,M
je sais cetait juste pour te rappeler la requete, j'ai bien saisi merci![]()
j'ai toujours un problème
SELECT DateEnr, M,
Sum(case
when (DATEPART(hour,DateEnr) > 4 AND DATEPART(hour,DateEnr) < 10) then 1
else 0
end) AS test
FROM QteReel
GROUP BY DateEnr, M
HAVING (((QteReel.M)='609'));
la reponse est :
DateEnr M test
.... 609 0
.... 609 1
.... 609 0
.... 609 1
.... 609 1
.... 609 1
.... 609 0
.... 609 0
....
il ne me fait pas la somme !!![]()
chui bete c bonmerci
comment je peux convertir une chaine de caracteres en date sous sql server ?
merci
Alors pour convertir une chaine de caractère de la forme JJ/MM/AAAA tu peux faire la chose suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select cast('01/12/2007 15:25:12' as datetime) Résultat 01/12/2007 15:25:12
super ca marche merci
Partager