Question :
Étant donné une table de base de données contenant les détails de la transaction, est-ce Il est possible de générer deux colonnes, « Montant des revenus » et « Montant des dépenses », séparant les montants des transactions selon qu'ils représentent des revenus ou des dépenses en utilisant une requête SQL ?
Solution :
Oui, en utilisant l'instruction CASE dans MySQL, il est possible de remplir les colonnes de manière conditionnelle, en séparant les montants en fonction du "type_action " déposé.
Voici un exemple de requête pour y parvenir :
SELECT id, action_heading, CASE WHEN action_type = 'Income' THEN action_amount ELSE NULL END AS income_amt, CASE WHEN action_type = 'Expense' THEN action_amount ELSE NULL END AS expense_amt FROM tbl_transaction;
Cette requête utilise le CASE instruction pour évaluer la colonne "action_type". Si le "type_action" est "Revenu", il attribue la valeur de "montant_action" à "revenu_amt" et définit "dépense_amt" sur NULL. À l'inverse, si « action_type » est « Expense », il attribue la valeur de « action_amount » à « expense_amt » et définit « revenue_amt » sur NULL.
Comme l'a indiqué le répondant, MySQL fournit également le IF( ) fonctionnent comme une alternative à l'instruction CASE. Cependant, l'instruction CASE est préférée en raison de sa portabilité sur différents moteurs de base de données par rapport à la fonction IF() spécifique à MySQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!