<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<game format-version="2" db-system="sqlite" db-system-min-version="3.37.0">
    <head>
        <title>Jack Frost: Building an Ice-Cream Business</title>
        <teaser>In a world where other millionaires juggle stocks, our hero Jack Frost takes the stage—not in a suit, but in the cool glow of his ice-cream cones. Join Jack on an ice-cold adventure as he brings a touch of frost to the business world.

Jack, a mischievous ice-cream seller with a fondness for winter wonders and chilled dreams, discovers that the key to his frozen fortune lies not in a bank vault but in his own frosty mind. What happens when he decides to open not just one ice-cream parlour, but several? Dive into an adventure full of quirky business ideas, frosty financial tricks and a hint of magic as Jack Frost aims to become a millionaire. Grab your ice-cream scoop and prepare for the coldest deal of the century!</teaser>
        <copyright>© 2024 Emily K., Ida T., Leni H.</copyright>
    </head>
    <scenes>
        <select-scene is-row-order-relevant="false" is-col-order-relevant="false" are-col-names-relevant="false">
            <text>Hi, I'm Jack Frost and I need your help. I really need a business. Can you find out what business information is available? Show all columns and rows of the `Business` table. It contains fictional businesses for comparison; `AnnualProfit` is their profit after operating costs for a completed financial year, in euros. Hints can help you with new commands.</text>
            <sql-solution>SELECT * FROM Business;</sql-solution>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>`SELECT *` selects all columns. The table name follows `FROM`.</text-hint>
            </hints>
        </select-scene>
        <select-scene is-row-order-relevant="false" is-col-order-relevant="false" are-col-names-relevant="false">
            <text>Wow, that's a lot… but I want to get rich as quickly as possible. Show me the businesses with their ideas and how much profit they make. Return `Name`, `Ideas` and `AnnualProfit` for all comparison businesses.</text>
            <sql-solution>SELECT Name, Ideas, AnnualProfit FROM Business;</sql-solution>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>List the three columns you want after `SELECT`, separated by commas.</text-hint>
            </hints>
        </select-scene>
        <text-scene>
            <text>Ice-cream parlours make a lot of money! These figures are for comparison and do not guarantee my success.</text>
        </text-scene>
        <select-scene is-row-order-relevant="false" is-col-order-relevant="false" are-col-names-relevant="false">
            <text>Ooh, ice-cream parlours seem very profitable. That could be a great idea for my area. But is there any competition already? Which ice-cream parlours are already here in Fürstenberg? Show `Name` and `Ideas`.</text>
            <sql-solution>SELECT Name, Ideas
FROM Business
WHERE City = 'Fürstenberg' AND Ideas = 'Ice-cream parlour';</sql-solution>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>Combine the city and business idea conditions with `AND`. Put text values in single quotes.</text-hint>
            </hints>
        </select-scene>
        <text-scene>
            <text>→ There aren't many ice-cream parlours here. Eisberg is the only ice-cream parlour in our comparison data for Fürstenberg.</text>
        </text-scene>
        <select-scene is-row-order-relevant="false" is-col-order-relevant="false" are-col-names-relevant="false">
            <text>Great, there's only one other ice-cream parlour here. But are ice-cream parlours in Fürstenberg actually profitable? Show `Name` and `AnnualProfit` for all ice-cream parlours in Fürstenberg.</text>
            <sql-solution>SELECT Name, AnnualProfit
FROM Business
WHERE City = 'Fürstenberg' AND Ideas = 'Ice-cream parlour';</sql-solution>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>Keep both conditions from the previous task; change the columns you select.</text-hint>
            </hints>
        </select-scene>
        <text-scene>
            <text>→ Yes, very! Eisberg made €60,000 in profit after operating costs in one financial year. That isn't my own profit yet, though.</text>
        </text-scene>
        <select-scene is-row-order-relevant="false" is-col-order-relevant="false" are-col-names-relevant="false">
            <text>Oh yes! This is how I can become a millionaire. I want to buy a branch here! Now I need to see which buildings in Fürstenberg are available. Show all information about branches there whose `OwnerID` is still `NULL`. In this practice database, `NULL` marks a site that is available to buy.</text>
            <sql-solution>SELECT *
FROM Branch
WHERE City = 'Fürstenberg' AND OwnerID IS NULL;</sql-solution>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>Check for `NULL` with `IS NULL`, not `= NULL`. The other branch in Fürstenberg already has an owner.</text-hint>
            </hints>
        </select-scene>
        <text-scene>
            <text>→ One building is available. The fully equipped branch is at Krallenstraße 23. In our simplified model, the listed price includes the equipment and all additional purchase costs.</text>
        </text-scene>
        <select-scene is-row-order-relevant="false" is-col-order-relevant="false" are-col-names-relevant="false">
            <text>One building is available. Can I afford it? How much does it cost? Show only `Price` for the available branches in Fürstenberg.</text>
            <sql-solution>SELECT Price
FROM Branch
WHERE City = 'Fürstenberg' AND OwnerID IS NULL;</sql-solution>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>Select only `Price`. Both conditions still matter.</text-hint>
            </hints>
        </select-scene>
        <text-scene>
            <text>→ I don't have that much in a single account. I need €50,000! Before we record any transactions, let's check the total balance.</text>
        </text-scene>
        <select-scene is-row-order-relevant="false" is-col-order-relevant="false" are-col-names-relevant="false">
            <text>Oh no, that's too much. I need to add up the balances of my two accounts. My `PersonID` in `People` is 1. The `AccountHolderID` column in `Accounts` refers to it. Calculate the sum of `Balance` across all my accounts.</text>
            <sql-solution>SELECT SUM(Balance) AS TotalBalance
FROM Accounts
WHERE AccountHolderID = 1;</sql-solution>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>`SUM(Balance)` adds up the selected account balances. First restrict the rows with `WHERE` to `AccountHolderID = 1`.</text-hint>
            </hints>
        </select-scene>
        <text-scene>
            <text>→ Now I have enough money to buy the branch! I have €50,200 in total. That covers the purchase, leaving €200 in my accounts. Here we are recording the purchase of a fully equipped site. Later income and operating costs will be combined into an annual result.</text>
        </text-scene>
        <manipulate-scene>
            <text>I'll buy the branch and change its owner. Record the agreed purchase: subtract exactly €25,000 from each of my two accounts (`AccountHolderID` 1) and set `OwnerID` to 1 for the available branch at Krallenstraße 23 in Fürstenberg. Make the changes in a transaction. All other data must stay unchanged.</text>
            <sql-solution>BEGIN TRANSACTION;
UPDATE Accounts SET Balance = Balance - 25000 WHERE AccountHolderID = 1;
UPDATE Branch SET OwnerID = 1
WHERE City = 'Fürstenberg' AND Address = 'Krallenstraße 23' AND OwnerID IS NULL;
COMMIT;</sql-solution>
            <sql-check>SELECT * FROM People;
SELECT * FROM Business;
SELECT * FROM Branch;
SELECT * FROM Employees;
SELECT * FROM Accounts;
SELECT * FROM IceCreamFlavours;
SELECT type, name, tbl_name, sql FROM sqlite_schema WHERE name NOT LIKE 'sqlite_%';
PRAGMA foreign_key_check;</sql-check>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>`UPDATE table_name SET column_name = expression WHERE condition` changes selected rows. An expression such as `Balance - 25000` uses the existing value.</text-hint>
                <text-hint>`BEGIN TRANSACTION;` starts a transaction, and `COMMIT;` completes it. Put the two `UPDATE` statements between them. After an SQL error, end any transaction that is still open with `ROLLBACK;` or reset the scene's database.</text-hint>
                <text-hint>The payment and change of ownership should be committed together. Submit `BEGIN TRANSACTION;`, both `UPDATE` statements and `COMMIT;` as a single SQL block.</text-hint>
            </hints>
        </manipulate-scene>
        <select-scene is-row-order-relevant="false" is-col-order-relevant="false" are-col-names-relevant="false">
            <text>Am I really the owner now? Show `OwnerID` and `Address` for the branch at Krallenstraße 23 in Fürstenberg. There is a street with the same name in Berlin, too.</text>
            <sql-solution>SELECT OwnerID, Address
FROM Branch
WHERE City = 'Fürstenberg' AND Address = 'Krallenstraße 23';</sql-solution>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>`City` and `Address` together identify the site. `OwnerID` 1 refers to Jack Frost.</text-hint>
            </hints>
        </select-scene>
        <text-scene>
            <text>→ Yes, I am! The branch is now registered to me and paid for. My accounts contain €0 and €200. Now I'll plan the range of flavours for the opening.</text>
        </text-scene>
        <select-scene is-row-order-relevant="true" is-col-order-relevant="false" are-col-names-relevant="false">
            <text>Now I need the 5 most popular ice-cream flavours for my shop. Show `IceCreamFlavour` and `Popularity` for the five most popular flavours, sorted by `Popularity` in descending order. If flavours are equally popular, sort them alphabetically by `IceCreamFlavour` in ascending order.</text>
            <sql-solution>SELECT IceCreamFlavour, Popularity
FROM IceCreamFlavours
ORDER BY Popularity DESC, IceCreamFlavour ASC
LIMIT 5;</sql-solution>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>`ORDER BY Popularity DESC` puts the highest values first. `LIMIT 5` restricts the result to five rows.</text-hint>
                <text-hint>Vanilla and Bueno both have a value of 4. Add `IceCreamFlavour ASC` as the second sort criterion so that ties have a clear order, too.</text-hint>
                <text-hint>Separate the sort criteria after `ORDER BY` with a comma. The second criterion only applies when popularity is equal; `IceCreamFlavour ASC` then sorts alphabetically in ascending order. `LIMIT` comes after the entire `ORDER BY` clause.</text-hint>
            </hints>
        </select-scene>
        <text-scene>
            <text>→ The five most popular ice-cream flavours are 1. Chocolate 2. Bueno 3. Vanilla 4. Pistachio 5. Lemon. Bueno and Vanilla are equally popular, so alphabetical order decides their places in our list. The query is my order list, not an inventory update.</text>
        </text-scene>
        <select-scene is-row-order-relevant="false" is-col-order-relevant="false" are-col-names-relevant="false">
            <text>Wow, I've come a long way. I now have my own branch with Chocolate, Bueno, Vanilla, Pistachio and Lemon ice cream. Show me an overview for my business and my branch: I need comparison figures for my business plan. Join my branches (`OwnerID` 1) with all comparison businesses in the same city and country. Show `Branch.Address`, `Business.Name`, `Business.Ideas` and `Business.AnnualProfit`. These businesses still belong to other people.</text>
            <sql-solution>SELECT Branch.Address, Business.Name, Business.Ideas, Business.AnnualProfit
FROM Branch
JOIN Business ON Business.City = Branch.City AND Business.Country = Branch.Country
WHERE Branch.OwnerID = 1;</sql-solution>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>`JOIN` combines tables; `ON` describes which rows belong together. Here we compare sites by city and country, rather than ownership.</text-hint>
                <text-hint>Combine the city and country comparisons in `ON` with `AND`. Select all matching comparison businesses, including those with a business idea other than an ice-cream parlour.</text-hint>
                <text-hint>`WHERE Branch.OwnerID = 1` restricts the starting branches to Jack's. Put the table names before the column names to make it clear which information you are selecting.</text-hint>
            </hints>
        </select-scene>
        <manipulate-scene>
            <text>One financial year later: I've set up the shop, ordered ingredients and served customers myself at first. My own annual accounts show €60,000 in profit after all operating costs; here we simplify the income and running expenses into this net amount. Set `AnnualProfit` to 60000 for my branch with `BranchID` 4 and increase `Balance` in my account 12648953 by 60000. Record both changes in a transaction; the comparison businesses and all other data must stay unchanged.</text>
            <sql-solution>BEGIN TRANSACTION;
UPDATE Branch SET AnnualProfit = 60000 WHERE BranchID = 4 AND OwnerID = 1;
UPDATE Accounts SET Balance = Balance + 60000 WHERE AccountNumber = '12648953' AND AccountHolderID = 1;
COMMIT;</sql-solution>
            <sql-check>SELECT * FROM People;
SELECT * FROM Business;
SELECT * FROM Branch;
SELECT * FROM Employees;
SELECT * FROM Accounts;
SELECT * FROM IceCreamFlavours;
SELECT type, name, tbl_name, sql FROM sqlite_schema WHERE name NOT LIKE 'sqlite_%';
PRAGMA foreign_key_check;</sql-check>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>`Branch.AnnualProfit` describes Jack's actual business; `Business.AnnualProfit` contains comparison figures from other businesses.</text-hint>
                <text-hint>Set the annual profit in the `Branch` `UPDATE`. In the `Accounts` `UPDATE`, add the profit to the existing balance.</text-hint>
            </hints>
        </manipulate-scene>
        <select-scene is-row-order-relevant="false" is-col-order-relevant="false" are-col-names-relevant="false">
            <text>Great, that's a lot of money. Now I have enough to hire staff. Find employees who do not currently work for any employer. Show all information about employees whose `EmployerID` is `NULL`. The `AnnualSalary` column contains the planned annual staff costs for a part-time position, in euros.</text>
            <sql-solution>SELECT * FROM Employees WHERE EmployerID IS NULL;</sql-solution>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>`EmployerID` refers to `People`. Here `NULL` means the person is available to hire.</text-hint>
            </hints>
        </select-scene>
        <select-scene is-row-order-relevant="false" is-col-order-relevant="false" are-col-names-relevant="false">
            <text>Now I want employees who are hardworking and friendly and do not currently work for any employer. Show all information about them. In this simplified model, 1 means yes and 0 means no.</text>
            <sql-solution>SELECT *
FROM Employees
WHERE EmployerID IS NULL AND Hardworking = 1 AND Friendly = 1;</sql-solution>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>Combine all three conditions with `AND`. Jan Winter is hardworking and friendly, but already works for someone else.</text-hint>
            </hints>
        </select-scene>
        <manipulate-scene>
            <text>I'll hire these employees. Hire exactly those employees who are available, hardworking and friendly: set their `EmployerID` to my `PersonID`, 1. `AnnualSalary` is a plan for the coming year and is not deducted from the accounts yet. Do not change any other data.</text>
            <sql-solution>UPDATE Employees
SET EmployerID = 1
WHERE EmployerID IS NULL AND Hardworking = 1 AND Friendly = 1;</sql-solution>
            <sql-check>SELECT * FROM People;
SELECT * FROM Business;
SELECT * FROM Branch;
SELECT * FROM Employees;
SELECT * FROM Accounts;
SELECT * FROM IceCreamFlavours;
SELECT type, name, tbl_name, sql FROM sqlite_schema WHERE name NOT LIKE 'sqlite_%';
PRAGMA foreign_key_check;</sql-check>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>Use all three conditions from your selection in the `UPDATE` statement. Without `WHERE`, you would also change other people's employment records.</text-hint>
            </hints>
        </manipulate-scene>
        <select-scene is-row-order-relevant="false" is-col-order-relevant="false" are-col-names-relevant="false">
            <text>My ice-cream parlour is doing so well that I want to expand. Can you look for branches abroad that do not yet have an owner? Laura Becker and Alexander Weber are now my team. I am budgeting a total of €30,000 in staff costs for their part-time positions next year. I am also looking for a fully equipped site outside Germany. Show all information about branches whose `Country` is not Germany and whose `OwnerID` is `NULL`.</text>
            <sql-solution>SELECT *
FROM Branch
WHERE Country &lt;&gt; 'Germany' AND OwnerID IS NULL;</sql-solution>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>Use `Country` to identify sites abroad, rather than `City`. `&lt;&gt;` means not equal. Also check availability.</text-hint>
            </hints>
        </select-scene>
        <select-scene is-row-order-relevant="false" is-col-order-relevant="false" are-col-names-relevant="false">
            <text>The site in Valencia costs €25,000. Check our budget before the purchase: calculate the total `Balance` of my accounts with `AccountHolderID` 1 again.</text>
            <sql-solution>SELECT SUM(Balance) AS TotalBalance
FROM Accounts
WHERE AccountHolderID = 1;</sql-solution>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>The first purchase and the annual result have changed the accounts. Use `SUM` on the current `Balance`.</text-hint>
            </hints>
        </select-scene>
        <text-scene>
            <text>There is currently €60,200 available. If I set aside €30,000 for the planned staff costs, that leaves €30,200. The total price of €25,000 for Valencia fits the budget. I'll go ahead with the expansion; after reserving the staff costs, there will still be a €5,200 buffer for future operating expenses.</text>
        </text-scene>
        <manipulate-scene>
            <text>Let's buy the one suitable site! Record the purchase of the only available site outside Germany: subtract 25000 from `Balance` in my account 12648953 and set `OwnerID` of the available branch abroad to 1. Use a transaction. Other accounts, the available branch in Berlin and all other data must stay unchanged.</text>
            <sql-solution>BEGIN TRANSACTION;
UPDATE Accounts SET Balance = Balance - 25000 WHERE AccountNumber = '12648953' AND AccountHolderID = 1;
UPDATE Branch SET OwnerID = 1
WHERE Country &lt;&gt; 'Germany' AND OwnerID IS NULL;
COMMIT;</sql-solution>
            <sql-check>SELECT * FROM People;
SELECT * FROM Business;
SELECT * FROM Branch;
SELECT * FROM Employees;
SELECT * FROM Accounts;
SELECT * FROM IceCreamFlavours;
SELECT type, name, tbl_name, sql FROM sqlite_schema WHERE name NOT LIKE 'sqlite_%';
PRAGMA foreign_key_check;</sql-check>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>Use both conditions from the query for sites abroad in the `UPDATE`, too. Otherwise, you might also buy a site that already has an owner or is in Germany.</text-hint>
                <text-hint>Deduct the money only from account 12648953. The annual staff costs are still reserved funds, not an expense that has already been paid.</text-hint>
            </hints>
        </manipulate-scene>
        <select-scene is-row-order-relevant="false" is-col-order-relevant="false" are-col-names-relevant="false">
            <text>Finally, check the payment: show `AccountNumber` and `Balance` for all my accounts (`AccountHolderID` 1).</text>
            <sql-solution>SELECT AccountNumber, Balance FROM Accounts WHERE AccountHolderID = 1;</sql-solution>
            <sql-placeholder></sql-placeholder>
            <hints>
                <expected-result-hint />
                <text-hint>There are still two accounts. The sum of their remaining balances must reflect the purchases and annual result.</text-hint>
            </hints>
        </select-scene>
        <text-scene>
            <text>Brilliant, thanks for your help! Our business is thriving and the money is rolling in!

I own the sites in Fürstenberg and Valencia, and Laura Becker and Alexander Weber are my team. After both purchases and the first annual result, my accounts still hold €35,000 and €200: €35,200 in total, including €30,000 reserved for next year's staff costs. Valencia has yet to open and has no annual profit yet.</text>
        </text-scene>
    </scenes>
    <initial-sql-script>PRAGMA foreign_keys = ON;

-- All people, businesses and figures are fictional practice data.
-- All monetary amounts are in euros; AnnualProfit is profit after operating costs
-- for a completed financial year, rather than revenue or an account balance.
CREATE TABLE People (
    PersonID INTEGER PRIMARY KEY,
    Name TEXT NOT NULL
);

-- Comparison businesses: these records are separate from Jack's own branches.
CREATE TABLE Business (
    BusinessID INTEGER PRIMARY KEY,
    Stars INTEGER NOT NULL CHECK (Stars BETWEEN 1 AND 5),
    Name TEXT NOT NULL,
    Ideas TEXT NOT NULL,
    AnnualProfit REAL NOT NULL,
    City TEXT NOT NULL,
    Country TEXT NOT NULL
);

-- Price is the agreed total purchase price of a fully equipped site.
-- NULL in AnnualProfit means that no annual result has been recorded yet.
CREATE TABLE Branch (
    BranchID INTEGER PRIMARY KEY,
    OwnerID INTEGER REFERENCES People(PersonID),
    Price REAL NOT NULL CHECK (Price &gt; 0),
    Address TEXT NOT NULL,
    City TEXT NOT NULL,
    Country TEXT NOT NULL,
    AnnualProfit REAL,
    UNIQUE (Country, City, Address)
);

CREATE TABLE Employees (
    EmployeeID INTEGER PRIMARY KEY,
    Stars INTEGER NOT NULL CHECK (Stars BETWEEN 1 AND 5),
    EmployerID INTEGER REFERENCES People(PersonID),
    Name TEXT NOT NULL,
    Hardworking INTEGER NOT NULL CHECK (Hardworking IN (0, 1)),
    Friendly INTEGER NOT NULL CHECK (Friendly IN (0, 1)),
    AnnualSalary REAL NOT NULL CHECK (AnnualSalary &gt; 0)
);

CREATE TABLE Accounts (
    AccountNumber TEXT PRIMARY KEY NOT NULL,
    AccountHolderID INTEGER NOT NULL REFERENCES People(PersonID),
    Balance REAL NOT NULL CHECK (Balance &gt;= 0)
);

CREATE TABLE IceCreamFlavours (
    IceCreamFlavour TEXT PRIMARY KEY NOT NULL,
    Popularity REAL NOT NULL CHECK (Popularity BETWEEN 0 AND 5)
);
INSERT INTO People VALUES (1, 'Jack Frost');
INSERT INTO People VALUES (2, 'Max Mustermann');
INSERT INTO People VALUES (3, 'Anna Schmidt');
INSERT INTO People VALUES (4, 'Peter Müller');
INSERT INTO People VALUES (5, 'Elena García');

INSERT INTO Business VALUES (1, 4, 'ABC Company', 'Innovative products', 50000.0, 'Augsburg', 'Germany');
INSERT INTO Business VALUES (2, 5, 'XYZ Enterprises', 'IT services', 75000.5, 'Berlin', 'Germany');
INSERT INTO Business VALUES (3, 3, '123 Startup', 'New business ideas', 30000.75, 'Cologne', 'Germany');
INSERT INTO Business VALUES (4, 5, 'Eisberg', 'Ice-cream parlour', 60000.0, 'Fürstenberg', 'Germany');
INSERT INTO Business VALUES (5, 4, 'Best Bakery', 'Bakery products', 30000.0, 'Düsseldorf', 'Germany');
INSERT INTO Business VALUES (6, 3, 'Green Gardens', 'Landscaping', 60000.25, 'Erfurt', 'Germany');
INSERT INTO Business VALUES (7, 5, 'Tech Solutions', 'IT consulting', 20000.75, 'Frankfurt', 'Germany');
INSERT INTO Business VALUES (8, 4, 'Cool Creations', 'Ice-cream parlour', 45000.5, 'Göttingen', 'Germany');
INSERT INTO Business VALUES (9, 5, 'Frozen Delights', 'Ice-cream parlour', 55000.8, 'Heidelberg', 'Germany');
INSERT INTO Business VALUES (10, 4, 'Sweet Scoops', 'Ice-cream parlour', 48000.6, 'Ingolstadt', 'Germany');
INSERT INTO Business VALUES (11, 3, 'Healthy Bites', 'Healthy food', 20000.3, 'Lübeck', 'Germany');
INSERT INTO Business VALUES (12, 5, 'Luxury Events', 'Event planning', 10000.9, 'Cologne', 'Germany');
INSERT INTO Business VALUES (13, 5, 'Eisberg', 'Ice-cream parlour', 30000.0, 'Valencia', 'Spain');
INSERT INTO Business VALUES (14, 5, 'Eisberg', 'Ice-cream parlour', 55000.0, 'Berlin', 'Germany');
INSERT INTO Business VALUES (15, 4, 'Backstube am Markt', 'Bakery', 22000, 'Fürstenberg', 'Germany');

INSERT INTO Branch VALUES (1, 2, 150000, 'Hauptstraße 123', 'Augsburg', 'Germany', 18000);
INSERT INTO Branch VALUES (2, 3, 98000.5, 'Nebengasse 456', 'Berlin', 'Germany', 22000);
INSERT INTO Branch VALUES (3, 4, 120000.75, 'Marktplatz 789', 'Berlin', 'Germany', 28000);
INSERT INTO Branch VALUES (4, NULL, 50000, 'Krallenstraße 23', 'Fürstenberg', 'Germany', NULL);
INSERT INTO Branch VALUES (5, NULL, 25000, 'Plaza de la Solera 25', 'Valencia', 'Spain', NULL);
INSERT INTO Branch VALUES (6, 3, 90000, 'Marktstraße 10', 'Fürstenberg', 'Germany', 14000);
INSERT INTO Branch VALUES (7, 5, 98000, 'Calle de la Luna 7', 'Seville', 'Spain', 19000);
INSERT INTO Branch VALUES (8, NULL, 27000, 'Lindenweg 8', 'Berlin', 'Germany', NULL);
INSERT INTO Branch VALUES (9, 4, 80000, 'Krallenstraße 23', 'Berlin', 'Germany', 21000);

INSERT INTO Employees VALUES (1, 4, NULL, 'Max Mustermann', 0, 0, 15000);
INSERT INTO Employees VALUES (2, 3, NULL, 'Anna Schmidt', 0, 0, 15000);
INSERT INTO Employees VALUES (3, 4, NULL, 'Maria Fischer', 0, 0, 15000);
INSERT INTO Employees VALUES (4, 3, NULL, 'Thomas Wagner', 0, 1, 15000);
INSERT INTO Employees VALUES (5, 5, NULL, 'Laura Becker', 1, 1, 15000);
INSERT INTO Employees VALUES (6, 4, NULL, 'Michael Schulz', 0, 0, 15000);
INSERT INTO Employees VALUES (7, 3, NULL, 'Sophie Richter', 0, 0, 15000);
INSERT INTO Employees VALUES (8, 5, NULL, 'Alexander Weber', 1, 1, 15000);
INSERT INTO Employees VALUES (9, 4, NULL, 'Emma Schneider', 0, 0, 15000);
INSERT INTO Employees VALUES (10, 3, NULL, 'Felix Meier', 1, 0, 15000);
INSERT INTO Employees VALUES (11, 5, NULL, 'Lea Keller', 0, 0, 15000);
INSERT INTO Employees VALUES (12, 4, NULL, 'David Huber', 0, 0, 15000);
INSERT INTO Employees VALUES (13, 5, NULL, 'Julia Mayer', 0, 0, 15000);
INSERT INTO Employees VALUES (14, 5, NULL, 'Nina Braun', 0, 1, 15000);
INSERT INTO Employees VALUES (15, 5, 2, 'Jan Winter', 1, 1, 15000);

INSERT INTO Accounts VALUES ('12345678', 2, 100000);
INSERT INTO Accounts VALUES ('23456789', 3, 120000.5);
INSERT INTO Accounts VALUES ('34567890', 4, 80000.25);
INSERT INTO Accounts VALUES ('12648953', 1, 25000);
INSERT INTO Accounts VALUES ('65972796', 1, 25200);

INSERT INTO IceCreamFlavours VALUES ('Chocolate', 5);
INSERT INTO IceCreamFlavours VALUES ('Vanilla', 4);
INSERT INTO IceCreamFlavours VALUES ('Bueno', 4);
INSERT INTO IceCreamFlavours VALUES ('Pistachio', 3.5);
INSERT INTO IceCreamFlavours VALUES ('Lemon', 3);
INSERT INTO IceCreamFlavours VALUES ('Strawberry', 2);</initial-sql-script>
</game>
