2014-09-15 12 views
-1

je récupérer des objets dans la base de données en fonction de leur identifiant l'emplacement et la quantité plus de cinq articles, mais je veux pour id emplacement spécifique récupérer des éléments avec la quantité plus 0 articlesrequête SQL pour retrive les données de base de données

Ceci est ma requête:

SELECT DISTINCT(warehouses.item_id), SUM(warehouses.qty) AS qty, items.gender_id, items_dept.desc, items_dept.dept_id, items.msrp,items.rtp 
FROM `warehouses` 
    JOIN `items` 
     ON items.item_id = warehouses.item_id 
    JOIN `items_dept` 
     ON items_dept.dept_id = items.dept_id 
WHERE items.gender_id IN (3,5,6) 
AND qty > 5 
AND warehouses.wrhs_id IN (20,21,22,23,24,25,26,27,28,29,30,31,32,38,40,44,47,49,55,60,61) 
AND items.dept_id = :catId 
AND items.rtp BETWEEN :priceX AND :priceY 
GROUP BY warehouses.item_id 
ORDER BY warehouses.item_id ASC 

Je veux pour wrhs_id (44) la quantité pas plus de 5, mais plus de 0

+2

code SQL? Schéma SQL? – kmas

Répondre

0
SELECT DISTINCT(warehouses.item_id), SUM(warehouses.qty) AS qty, items.gender_id, items_dept.desc, items_dept.dept_id, items.msrp,items.rtp 
FROM `warehouses` 
    JOIN `items` 
     ON items.item_id = warehouses.item_id 
    JOIN `items_dept` 
     ON items_dept.dept_id = items.dept_id 
WHERE items.gender_id IN (3,5,6) 
AND ((
     qty > 5 
     AND 
     warehouses.wrhs_id IN (20,21,22,23,24,25,26,27,28,29,30,31,32,38,40,47,49,55,60,61) 
    ) 
    OR (
     qty > 0 
     AND 
     warehouses.wrhs_id = 44 
    ) 
) 
AND items.dept_id = :catId 
AND items.rtp BETWEEN :priceX AND :priceY 
GROUP BY warehouses.item_id 
ORDER BY warehouses.item_id ASC 
+0

merci beaucoup très belle réponse – yasen

0

Dans SQL, vous pouvez utiliser LIMIT param pour indiquer la limite des articles retournés, mais si vous récupérez 0 articles que vous avez fait une erreur ou il n'y a pas de données sur la base de données

+0

non je veux dans la requête pour récupérer des éléments dans wrhs_ids (1,2,3,4) et leur quantité doit être plus de cinq éléments et récupérer des éléments dans wrhs_id (5) et sa quantité doit être plus de 0 éléments – yasen

0

Essayez ceci:

SELECT DISTINCT(warehouses.item_id), SUM(warehouses.qty) AS qty, items.gender_id, items_dept.desc,items_dept.dept_id,items.msrp,items.rtp 
      FROM `warehouses` 
      JOIN `items`  ON items.item_id  = warehouses.item_id 
      JOIN `items_dept` ON items_dept.dept_id = items.dept_id 
      WHERE items.gender_id IN (3,5,6) 
      AND qty > 0 
      AND warehouses.wrhs_id = 44 
      AND items.dept_id = :catId 
      AND items.rtp BETWEEN :priceX AND :priceY 
      GROUP BY warehouses.item_id 
      ORDER BY warehouses.item_id ASC 
+0

et autres wrhs_ids ????? – yasen

Questions connexes