Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/06/2011, 11h32   #1
Futur Membre du Club
 
Homme
Développeur Web
Inscription : novembre 2007
Messages : 185
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2007
Messages : 185
Points : 15
Points : 15
Par défaut Problème avec plusieurs not like

bonjour à tous !

J'ai une requête dans laquelle il y a plusieurs not like qui s'enchaine. Le problème est qu'elle me remonte quand même les résultat que j'ai exclus.

ma requete :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
$rq_cpt=odbc_do($conn,"SELECT E7BUZA,DYEVZE,E7B4ZB from osm_option  
 
WHERE (E7BUZA not like 'MODEM1'
and E7BUZA not like 'DSI%'
and E7BUZA not like 'GC%' 
and E7BUZA not like 'GF%' 
and E7BUZA not like 'GL%' 
and E7BUZA not like 'GU%' 
and E7BUZA not like 'MMA%' 
and E7BUZA not like 'N2%' 
and E7BUZA not like 'PNM%' 
and E7BUZA not like 'RAB%'
and E7BUZA not like 'RGF%' 
and E7BUZA not like 'SPR%' 
and E7BUZA not like 'VVMIL%' 
and E7BUZA not like 'VPNGAR'
and E7BUZA not like 'SC024'
and E7BUZA not like 'SAE00%'
and E7BUZA not like 'PROVP4' 
and E7BUZA not like 'PRM001' 
and E7BUZA not like 'PCM024')
 
AND (DYEVZE not like '%Assistance%' 
and DYEVZE not like '%coff.Itin.%' 
and DYEVZE not like '%jumelle%'
and DYEVZE not like '%tel%'
and DYEVZE not like '%Achat%' 
and DYEVZE not like '%Alcatel%' 
and DYEVZE not like '%Pénalités%' 
and DYEVZE not like '%TV%'
and DYEVZE not like '%V66%' 
and DYEVZE not like '%15 SMS%'
and DYEVZE not like '%changement%'
and DYEVZE not like '%Europe%'
and DYEVZE not like '%bureau mobile%'
and DYEVZE not like '%vocale%'
and DYEVZE not like '%N°CP%' 
and DYEVZE not like '%Fun%'
and DYEVZE not like '%présentation%'
and DYEVZE not like '%secret%'
and DYEVZE not like '%répertoire%'
and DYEVZE not like '%IAS%'
and DYEVZE not like '%frais%' 
and DYEVZE not like '%seconde' 
and DYEVZE not like '%paiement%'
and DYEVZE not like '%SIM%'
and DYEVZE not like '%migration%'
and DYEVZE not like '%RP%'
and DYEVZE not like '%désimlockage%'
and DYEVZE not like '%Cellway%'
and DYEVZE not like '%prêt%'
and DYEVZE not like '%SAV%' 
and DYEVZE not like '%VPN juill. 05%'
and DYEVZE not like '%engagement%'
and DYEVZE not like '%engagt%'
and DYEVZE not like '%tél. mobile%'
and DYEVZE not like '%coffret%'
and DYEVZE not like '%fidl%'
and DYEVZE not like '%promo%' 
and DYEVZE not like '%Infos%' 
and DYEVZE not like '%bienvenue%' 
and DYEVZE not like '%promotion%' 
and DYEVZE not like '%couverture%' )
AND (E7B4ZB=0 Or E7B4ZB>'$date_jour')
group by DYEVZE,E7BUZA,E7B4ZB");
Merci d'avance pour votre aide
kamnouz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 11h45   #2
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour,


Pouvez vous donner un exemple des résultat remontés par la requete et qui devraient être exclus.

Quelle est le type et la collation des colonnes concernées par le filtre.

Enfin, merci de préciser votre SGBDR
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 11h54   #3
Futur Membre du Club
 
Homme
Développeur Web
Inscription : novembre 2007
Messages : 185
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2007
Messages : 185
Points : 15
Points : 15
Merci pour ta réponse

Mon SGBD est une base AS400.
Les deux champs concerné (DYEVZE et E7BUZA) sont de type texte.
Je voudrais remonter toutes les valeurs qui ne contiennent pas les caractéres présent dans les 'Not like'.

Mais le filtre ne se fait pas .
kamnouz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 13h46   #4
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 638
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 638
Points : 2 630
Points : 2 630
Bonjour,

Votre requête est bonne niveau syntaxe pour de l'as400.

Par contre j'ai un doute concernant une de vos variables bindée .. :

Citation:
Or E7B4ZB>'$date_jour'
Essayer de chopper l'execution de votre requête avec les binds sur l'as400 (cache plan) pour voir ce qui ne va pas. (ou, si vous avez, avec les logs applicatifs)
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/06/2011, 14h24   #5
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 954
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 954
Points : 17 774
Points : 17 774
Que d'horreur dans cette requête :
1° un GROUP BY qui ne sert à rien
2° des LIKE inutiles (exemple : E7BUZA not like 'PROVP4' , E7BUZA not like 'PRM001' , E7BUZA not like 'PCM024') que vous feriez bien de transformer en NOT IN....

Enfin, êtes vous sur de votre OR ? Commencez par le retirer et voyez ce qui se passe....

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/06/2011, 10h43   #6
Membre habitué
 
Avatar de tfc3146
 
Homme Robert Labrousse
Développeur décisionnel
Inscription : février 2009
Messages : 79
Détails du profil
Informations personnelles :
Nom : Homme Robert Labrousse
Localisation : France

Informations professionnelles :
Activité : Développeur décisionnel
Secteur : Boutique - Magasin

Informations forums :
Inscription : février 2009
Messages : 79
Points : 134
Points : 134
Bonjour,

Votre champ E7B4ZB est de quel type ? Car dans la 1ère condition vous l'appliquez sur du numérique E7B4ZB=0 puis ensuite sur du texte E7B4ZB>'$date_jour'.
Essayez de séparer votre requête et de l'exécuter bloc par bloc, vous serez davantage fixé sur l'origine du problème.
tfc3146 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h58.


 
 
 
 
Partenaires

Hébergement Web