Database schema:
CREATE TABLE Products (
  product_id NUMBER PRIMARY KEY,
  parent_product_id NUMBER,
  product_name TEXT,
  product_price NUMBER,
  product_color TEXT,
  product_size TEXT,
  product_description TEXT
);
CREATE TABLE Customers (
  customer_id NUMBER PRIMARY KEY,
  gender_code TEXT,
  customer_first_name TEXT,
  customer_middle_initial TEXT,
  customer_last_name TEXT,
  email_address TEXT,
  login_name TEXT,
  login_password TEXT,
  phone_number TEXT,
  address_line_1 TEXT,
  town_city TEXT,
  county TEXT,
  country TEXT
);
CREATE TABLE Customer_Payment_Methods (
  customer_id NUMBER,
  payment_method_code TEXT,
  FOREIGN KEY (customer_id) REFERENCES Customers(customer_id)
);
CREATE TABLE Invoices (
  invoice_number NUMBER PRIMARY KEY,
  invoice_status_code TEXT,
  invoice_date TIME
);
CREATE TABLE Orders (
  order_id NUMBER PRIMARY KEY,
  customer_id NUMBER,
  order_status_code TEXT,
  date_order_placed TIME,
  FOREIGN KEY (customer_id) REFERENCES Customers(customer_id)
);
CREATE TABLE Order_Items (
  order_item_id NUMBER PRIMARY KEY,
  product_id NUMBER,
  order_id NUMBER,
  order_item_status_code TEXT,
  FOREIGN KEY (order_id) REFERENCES Orders(order_id),
  FOREIGN KEY (product_id) REFERENCES Products(product_id)
);
CREATE TABLE Shipments (
  shipment_id NUMBER PRIMARY KEY,
  order_id NUMBER,
  invoice_number NUMBER,
  shipment_tracking_number TEXT,
  shipment_date TIME,
  FOREIGN KEY (order_id) REFERENCES Orders(order_id),
  FOREIGN KEY (invoice_number) REFERENCES Invoices(invoice_number)
);
CREATE TABLE Shipment_Items (
  shipment_id NUMBER PRIMARY KEY,
  order_item_id NUMBER,
  FOREIGN KEY (order_item_id) REFERENCES Order_Items(order_item_id),
  FOREIGN KEY (shipment_id) REFERENCES Shipments(shipment_id)
);

Question: List the invoices' status, date and the date of shipment.
SQL: SELECT T1.invoice_status_code ,  T1.invoice_date ,  T2.shipment_date FROM Invoices AS T1 JOIN Shipments AS T2 ON T1.invoice_number  =  T2.invoice_number

Question: What are the login names and passwords of the customers whose phone number have the prefix '+12'?
SQL: SELECT login_name ,  login_password FROM Customers WHERE phone_number LIKE '+12%'

Question: What are the ids, names, and prices of all products that are ordered most frequently?
SQL: SELECT T1.product_id ,  T1.product_name ,  T1.product_price FROM Products AS T1 JOIN Order_items AS T2 ON T1.product_id  =  T2.product_id GROUP BY T1.product_id ORDER BY count(*) DESC LIMIT 1

Question: What are the usernames and passwords of all customers whose phone number starts with '+12'?
SQL: SELECT login_name ,  login_password FROM Customers WHERE phone_number LIKE '+12%'

Question: List the order date of the orders who are placed by customers with at least 2 payment methods.
SQL: SELECT date_order_placed FROM Orders WHERE customer_id IN ( SELECT T1.customer_id FROM Customers AS T1 JOIN Customer_Payment_Methods AS T2 ON T1.customer_id  =  T2.customer_id GROUP BY T1.customer_id HAVING count(*)  >=  2 )

Question: What is the product name and the color of the ordered items which have been shipped?
SQL: SELECT T1.product_name ,  T1.product_color FROM Products AS T1 JOIN Order_items AS T2 ON T1.product_id  =  T2.product_id JOIN Shipment_Items AS T3 ON T2.order_item_id  =  T3.order_item_id JOIN Shipments AS T4 ON T3.shipment_id  =  T4.shipment_id

Question: What is the order that total cost the least , and how much is the total cost ?
SQL: select t1.order_id ,  sum(t2.product_price) from order_items as t1 join products as t2 on t1.product_id  =  t2.product_id group by t1.order_id order by sum(t2.product_price) asc limit 1

Question: What are the total cost of all the orders ? List the order id , date , and total cost .
SQL: select t1.order_id ,  t1.date_order_placed ,  sum(t3.product_price) from orders as t1 join order_items as t2 on t1.order_id  =  t2.order_id join products as t3 on t2.product_id  =  t3.product_id group by t1.order_id

Question: What is the status code of the items being ordered and shipped and its corresponding shipment tracking number?
SQL: SELECT T1.order_item_status_code ,  T3.shipment_tracking_number FROM Order_items AS T1 JOIN Shipment_Items AS T2 ON T1.order_item_id  =  T2.order_item_id JOIN Shipments AS T3 ON T2.shipment_id  =  T3.shipment_id

Question: What are the id, name, price and color of the products which have not been ordered for at least twice?
SQL: SELECT product_id ,  product_name ,  product_price ,  product_color FROM Products EXCEPT SELECT T1.product_id ,  T1.product_name ,  T1.product_price ,  T1.product_color FROM Products AS T1 JOIN Order_items AS T2 ON T1.product_id  =  T2.product_id JOIN Orders AS T3 ON T2.order_id  =  T3.order_id GROUP BY T1.product_id HAVING count(*)  >=  2

Question: How many products does each gender buy?
SQL: SELECT T1.gender_code ,  count(*) FROM Customers AS T1 JOIN Orders AS T2 ON T1.customer_id  =  T2.customer_id JOIN Order_items AS T3 ON T2.order_id  =  T3.order_id GROUP BY T1.gender_code

Question: What are the different names, prices, and descriptions for all products bought by female customers?
SQL: SELECT DISTINCT T1.product_name ,  T1.product_price ,  T1.product_description FROM Products AS T1 JOIN Order_items AS T2 ON T1.product_id  =  T2.product_id JOIN Orders AS T3 ON T2.order_id  =  T3.order_id JOIN Customers AS T4 ON T3.customer_id  =  T4.customer_id WHERE T4.gender_code  =  'Female'

Question: What is the status code of the items have been ordered and shipped, and also what are their shipment tracking numbers?
SQL: SELECT T1.order_item_status_code ,  T3.shipment_tracking_number FROM Order_items AS T1 JOIN Shipment_Items AS T2 ON T1.order_item_id  =  T2.order_item_id JOIN Shipments AS T3 ON T2.shipment_id  =  T3.shipment_id

Question: What are the color, description and size of the products priced below the maximum price.
SQL: SELECT product_color ,  product_description ,  product_size FROM Products WHERE product_price  <  ( SELECT max(product_price) FROM products )

Question: How many different payment methods are there?
SQL: SELECT count(DISTINCT Payment_method_code) FROM Customer_Payment_Methods

Question: List the dates of the orders which were placed at the earliest time or have more than 1 items.
SQL: SELECT min(date_order_placed) FROM Orders UNION SELECT T1.date_order_placed FROM Orders AS T1 JOIN Order_items AS T2 ON T1.order_id  =  T2.order_id GROUP BY T1.order_id HAVING count(*)  >  1

Question: How many customers have placed any order?
SQL: SELECT count(DISTINCT customer_id) FROM Orders

Question: What is the date of all orders that have been placed by customers with at least 2 payment methods?
SQL: SELECT date_order_placed FROM Orders WHERE customer_id IN ( SELECT T1.customer_id FROM Customers AS T1 JOIN Customer_Payment_Methods AS T2 ON T1.customer_id  =  T2.customer_id GROUP BY T1.customer_id HAVING count(*)  >=  2 )

Question: What are the statuses, dates, and shipment dates for all invoices?
SQL: SELECT T1.invoice_status_code ,  T1.invoice_date ,  T2.shipment_date FROM Invoices AS T1 JOIN Shipments AS T2 ON T1.invoice_number  =  T2.invoice_number

Question: For each order, what is its id, date, and total amount paid?
SQL: SELECT T1.order_id ,  T1.date_order_placed ,  sum(T3.product_price) FROM Orders AS T1 JOIN Order_items AS T2 ON T1.order_id  =  T2.order_id JOIN Products AS T3 ON T2.product_id  =  T3.product_id GROUP BY T1.order_id

Question: List the invoice dates and ids of the invoices causing at least 2 shipments.
SQL: SELECT T1.invoice_date ,  T1.invoice_number FROM Invoices AS T1 JOIN Shipments AS T2 ON T1.invoice_number  =  T2.invoice_number GROUP BY T1.invoice_number HAVING count(*)  >=  2