Python

Сводка по банковскому счету с использованием SQL

Сводка по банковскому счету является популярным SQL вопрос в Наука о данных интервью. Он включает в себя создание сводки банковского счета в определенном формате с использованием SQL. Итак, если вы хотите узнать, как создать сводку по банковскому счету, эта статья для вас. В этой статье я расскажу вам, как создать сводку по банковскому счету с помощью SQL.

Сводка по банковскому счету: постановка проблемы

Создайте сводку по банковскому счету, рассмотрев транзакции, указанные в таблице ниже:

+---------------+-------------------+-----------------+-----------------+-------------------+
| AccountNumber | AccountHolderName | TransactionDate | TransactionType | TransactionAmount |
+---------------+-------------------+-----------------+-----------------+-------------------+
|          1001 | Ravi Sharma       | 2023-07-01      | Deposit         |           5000.00 |
|          1001 | Ravi Sharma       | 2023-07-05      | Withdrawal      |           1000.00 |
|          1001 | Ravi Sharma       | 2023-07-10      | Deposit         |           2000.00 |
|          1002 | Priya Gupta       | 2023-07-02      | Deposit         |           3000.00 |
|          1002 | Priya Gupta       | 2023-07-08      | Withdrawal      |            500.00 |
|          1003 | Vikram Patel      | 2023-07-04      | Deposit         |          10000.00 |
|          1003 | Vikram Patel      | 2023-07-09      | Withdrawal      |           2000.00 |
+---------------+-------------------+-----------------+-----------------+-------------------+

В приведенной выше таблице:

  1. AccountNumber представляет собой уникальный идентификатор для каждого банковского счета;
  2. AccountHolderName представляет имя владельца учетной записи;
  3. TransactionDate — дата совершения транзакции;
  4. TransactionType представляет тип транзакции, такой как депозит или снятие средств;
  5. TransactionAmount представляет сумму, вовлеченную в транзакцию;

Ваша задача — написать запрос, который выводит сводку по банковскому счету в соответствии с общим балансом после рассмотрения истории транзакций для каждой учетной записи.

Создание сводки банковского счета с использованием SQL

Чтобы решить эту проблему, нам нужно написать SQL-запрос, который извлекает необходимую информацию и представляет ее в определенном формате. Сводка по банковскому счету должна включать общий баланс по каждому счету, который представляет собой сумму всех депозитов за вычетом суммы всех снятий.

Во-первых, давайте создадим входную таблицу для нашей базы данных SQL (я использую MySql):

CREATE TABLE BankTransactions (
  AccountNumber INT,
  AccountHolderName VARCHAR(255),
  TransactionDate DATE,
  TransactionType VARCHAR(255),
  TransactionAmount DECIMAL(10, 2)
);

INSERT INTO BankTransactions (AccountNumber, AccountHolderName, TransactionDate, TransactionType, TransactionAmount)
VALUES
  (1001, 'Ravi Sharma', '2023-07-01', 'Deposit', 5000),
  (1001, 'Ravi Sharma', '2023-07-05', 'Withdrawal', 1000),
  (1001, 'Ravi Sharma', '2023-07-10', 'Deposit', 2000),
  (1002, 'Priya Gupta', '2023-07-02', 'Deposit', 3000),
  (1002, 'Priya Gupta', '2023-07-08', 'Withdrawal', 500),
  (1003, 'Vikram Patel', '2023-07-04', 'Deposit', 10000),
  (1003, 'Vikram Patel', '2023-07-09', 'Withdrawal', 2000);

А теперь, как создать сводку по банковскому счету с помощью SQL для всех счетов в базе данных:

SELECT
  AccountNumber,
  AccountHolderName,
  SUM(CASE WHEN TransactionType="Deposit" THEN TransactionAmount ELSE -TransactionAmount END) AS TotalBalance
FROM
  BankTransactions
GROUP BY
  AccountNumber, AccountHolderName
ORDER BY
  AccountNumber;
+---------------+-------------------+--------------+
| AccountNumber | AccountHolderName | TotalBalance |
+---------------+-------------------+--------------+
|          1001 | Ravi Sharma       |      6000.00 |
|          1002 | Priya Gupta       |      2500.00 |
|          1003 | Vikram Patel      |      8000.00 |
+---------------+-------------------+--------------+
3 rows in set (0.00 sec)

Приведенный выше сценарий использует оператор SELECT для получения необходимой информации из таблицы «BankTransactions». Он рассчитывает общий баланс для каждой учетной записи, суммируя суммы депозитов и вычитая суммы снятия. Оператор CASE используется для различения транзакций ввода и вывода средств и для соответствующей корректировки сумм транзакций. Затем результаты группируются по номеру учетной записи и имени владельца учетной записи с использованием предложения GROUP BY. Наконец, результаты упорядочиваются по номеру счета с помощью предложения ORDER BY.

Краткое содержание

Вот как вы можете создать сводку для банковских счетов с помощью SQL. Чтобы решить этот вопрос, мы рассчитали общий баланс для каждой учетной записи, суммируя суммы депозитов и вычитая суммы снятия. Надеюсь, вам понравилась эта статья о создании сводки по банковским счетам с помощью SQL. Не стесняйтесь задавать ценные вопросы в разделе комментариев ниже.


Ссылка на источник

Похожие статьи

Кнопка «Наверх»