Bonjour,

Je dois réaliser un select un peu spécial sur cette table :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE IF NOT EXISTS `itmmaster` (
  `itmref` varchar(20) NOT NULL,
  `itmdes1` varchar(30) NOT NULL,
  `itmdes2` varchar(30) NOT NULL,
  `itmdes3` varchar(30) NOT NULL,
  `eancod` bigint(13) NOT NULL,
  `itmsta` int(1) NOT NULL,
  `rplitm` varchar(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
ALTER TABLE `itmmaster`
 ADD PRIMARY KEY (`itmref`);
itmref correspond à la référence, itmsta correspond au status de la référence, rplitm correspond à une référence de remplacement.

Ma requête de base

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT itmmaster.itmref_0||'|'||itmmaster.itmdes1_0||'|'||itmmaster.itmdes2_0||'|'||itmmaster.itmdes3_0||'|'||itmmaster.eancod_0||'|'||itmmaster.itmsta_0||'|'||itmmaster.rplitm_0                                                                                              
FROM itmmaster itmmaster
WHERE itmmaster.ynonprepa_0 < 2 AND itmmaster.yflggen_0 < 2
ORDER BY itmmaster.itmref_0;
itmsta peut avoir comme valeur : 1, 2, 3, 4, 5, 6

Je souhaite que lorsque itmsta = 6 éliminer les lignes dont rplitm est vide ou null.

Je ne sais pas si c'est réalisable mais l'idée est d'éviter un retraitement lors de l'import dans une base mysql.