Comment obtenir conditionnellement le prix * la quantité à l'aide de CASE
P粉506963842
P粉506963842 2024-04-03 20:45:07
0
1
397

Si j'ai sale_price, j'utiliserai sale_price * quantité pour représenter le prix total, Si vous n'avez pas de prix_vente, vous devez exprimer le prix total sous la forme Prix_origine * quantité.

J'ai essayé d'utiliser CASE comme ci-dessous mais j'ai obtenu cette erreur.

Erreur 1064 (42000) : Il y a une erreur dans votre syntaxe SQL ; vérifiez le manuel de la version de votre serveur MySQL pour ') )AS products FROM users u JOIN cart_order c_o ON c_o.user_id = u' on line 11 Corriger la grammaire à utiliser à proximité

Qu'est-ce que j'ai fait de mal ? Existe-t-il une autre méthode ? J'ai besoin d'aide.

const readUserCart = async userId => {
  const userCart = await myDataSource.query(
    `SELECT u.id AS userId, u.name AS userName,
    JSON_ARRAYAGG(
        JSON_OBJECT(
          'productName', p.name, 
          'quantity', c_o.quantity,
          'priceOrigin', REPLACE(p.price_origin, '.', ','),
          'salePrice', REPLACE(p.sale_price, '.', ','),
          'productThumbnail', t_i.default_img,
          'status', c_o.status,
          'price', CASE 
                  WHEN p.sale_price = null 
                  THEN REPLACE(p.price_origin * quantity, '.', ',') 
                  ELSE REPLACE(p.sale_price * quantity, '.', ',')
        )
      )AS products
    FROM users u
    JOIN cart_order c_o ON c_o.user_id = u.id
    JOIN products p ON p.id = c_o.product_id
    WHERE u.id = ?
    GROUP BY u.id`,
    [userId]
  );
  return userCart;
};

P粉506963842
P粉506963842

répondre à tous(1)
P粉138711794

Essayez de comparer « sale_price is null » avec « sale_price = null ». Peut-être que ça vous aide.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!