Posez votre question Signaler

[SQL] % ne fonctionne pas !? [Résolu]

Riwalenn - Dernière réponse le 31 mai 2007 à 17:06
Bonjour,

dans ma table, j'ai fait la requête suivante :

SELECT*
FROM Products
WHERE ProductName IN ('%NV')

j'obtiens juste une ligne vide. Hors si je fais :
SELECT*
FROM Products
WHERE MainGrade IN ('NV')

J'obtiens tout mes produits référencés en NV dans la colonne MainGrade.

Hors moi ce que j'aimerais obtenir c'est les produits dont le nom se termine par NV ou -NV dans la colonne ProductName.
Pourquoi est-ce que mon %NV est refusé ?

merci pour votre aide
Lire la suite 

[SQL] % ne fonctionne pas »

16 réponses
Réponse
+0
moins plus
salut
essaie
SELECT*
FROM Products
WHERE MainGrade LIKE '%NV'
Ajouter un commentaire
Réponse
+0
moins plus
bien joué Deus ! Merci pour la solution, j'avais pas pensé à LIKE et surtout à ne pas mettre de parenthèse après LIKE... merci encore !
Ajouter un commentaire
Réponse
+0
moins plus
/par contre j'ai une autre question, ça ne fonctionne pas dans le cadre d'une colonne de date. J'ai une colonne qui s'appelle ModifyDate notée : 06/09/2005 16:41: par exemple

comment puis-je faire par exemple pour selectionner tous les champs dont la date correspond à aujourd'hui ?
j'ai essayé avec
SELECT *
FROM nom de la table
WHERE ModifyDate LIKE '06/09/2005%'

ou encore
WHERE ModifyDate IN '06/09/2005%'

ou encore avec les parenthèses avant et après les '

Est-ce que c'est une requête différente pour les dates ?
Ajouter un commentaire
Réponse
+0
moins plus
Re,
Voici une solution envisageable. Pour l’exemple j’ai utilisé la DB Northwind
USE Northwind
SELECT * FROm Orders
WHERE Datediff(dd, OrderDate, '07/08/1996') = 0

Mais tu peux aussi regarder la fonction DATEPART,…
Ajouter un commentaire
Réponse
+0
moins plus
oulà ! J'avoue que là tu parles un language que je ne comprends plus... je suis une newbie en SQL moi :)

Ma table s'appelle DeliveryDtls.
la colonne que j'aimerais avoir dans le WHERE c'est ModifyDate et la date 06/09/2005 par exemple. Par contre dans ma colonne ModifyDate, cela se présente sous la forme 06/09/2005:14:15: par exemple et moi j'aimerais sélectionner toute la journée.

J'ai réussi à m'en tirer grâce à une autre colonne mais dans un futur très proche je vais me retrouver vite dans la mouise ;) et donc il faudrait vraiment que je comprenne comment on fait...

ps. j'ai acheté un bouquin que je devrais reçevoir incessament sous peu : celui qui est présenté dans le menu de gauche...
Ajouter un commentaire
Réponse
+0
moins plus
format(modifydate;"jjmmaaaa")=format(date;"jjmmaaaa")
ou ent(modifydate)=date
ou modifydate>=date and modifydate<date+1
j'en connais d'autres plus longues
Ajouter un commentaire
Réponse
+0
moins plus
modifydate>=date : pas de tri
modifydate>=date and modifydate<date+1 : ligne vierge
ent(modifydate)=date : erreur suivante

[MICROSOFT][ODBC SQL Server Driver][SQL Server] 'modifydate' is not a recognized OPTIMIZER LOCK HINTS option


il va de soi que j'ai bien mis les majuscules là où il y en avait.
Ajouter un commentaire
Réponse
+0
moins plus
Alors dans ton cas précis essaies ça :

SELECT * FROm DeliveryDtls
WHERE Datediff(dd, ModifyDate, '06/09/2005’) = 0

(Attention en fonction de ta configuration il se peut qu’il interprète ‘06/09/2005’ comme le 9 juin donc à toi de jouer avec ça ;)

Riwalenn - 27 mars 2007 à 11:51
je pense avoir compris... en gros c'est un truc comme ça que tu veux :

select materiel.tableA,arbo.tableA,
from tableA, tableB
where arbo.tableA like arbo.tableB and arbo.tableA like '3%'
order by arbo.tableA

le seul hic serait en fait de definir le 30% ou un autre chiffre bien entendu...
seulement y'a juste un problème dans notre exemple tu as 2 références commençant par 30 -> voiture et scooter... mais je ne pense pas que le soucis vienne de là...
kiwijinshi - 27 mars 2007 à 13:17
La synthaxe exacte est TABLE.CHAMP ;)
Et je pense qu'il sera plus simple de faire les conditions de jointures en VBA que directement sous SQL... tant que je n'ai pas de champ rigoureusement commun entre les deux tables (avec longueur de ARBO variable qui plus est) il n'y a pas de solution adaptée..

Pour scooter j'ai corrigé, c'était une erreur de mettre 301, j'ai remplacé par 311 pour l'exemple.

Merci pour ton aide en tt cas ! Joyeuse semaine
Riwalenn - 27 mars 2007 à 13:51
lol je fais toujours l'erreur de syntaxe entre les champs même avec toutes mes requêtes...
désolée de n'avoir pu t'aider mais en même temps je ne connais pas du tout access, ça fait 10 que je l'ai pas utilisé...
Ajouter un commentaire
Réponse
+0
moins plus
Grandiose Deus ! l'histoire du mois de juin m'a fait tilt et en effet tu as raison. c'est vraiment très bizarre tu dois faire une recherche style 09/07 pour obtenir la date 07/09 quoi que j'ai oublié que j'ai la version anglaise de windows 2000 donc forcement ça coulait de source...

Merci Deus encore pour ton aide ! Ca m'enlève une épine du pied
Ajouter un commentaire
Réponse
+0
moins plus
Franchement je comprend absolument rien a SQL
est-ce que l'on peut m'espliquer svp
Ajouter un commentaire
Ce document intitulé « [SQL] % ne fonctionne pas !? » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook