hello all!

I have this SQL code that I am supposed to write and am worried that my code may be wrong. I am fairly confident that the first 2 questions are correct but after that......who knows! I have attached an ER diagram( which is acutally really messed up...but whatever) Below are the queries that I wrote based on what I thought that the questions was asking (the directions are not clear at all).

I am just looking to see if any SQL experts out there can help me out with the queries and let me know if any of them are wrong.
Here is the ER diagram:

Thanks.

1) Look for all customers with a name that includes the string 'Johnson'.
my answer:

SELECT first_name, last_name
FROM Customer
WHERE first_name LIKE '%Johnson%' OR last_name LIKE '%Johnson%';

2) The 'Product' table's primary key is product_id. A default sequence has been assigned to the column product_id. Add a product called 'Widget' with a unit_price of $5.00 to the Product table.

my answer:

INSERT INTO Product (product_name,unit_price)  VALUES ('Widget',5.00);

Here is where I got confused.....
3.Show all information related (order, customer and product data) using an explicit join for order_id 2477843.
My Answer:

SELECT  order_id, date,billing_name, billing_addr1, billing_addr2, billing_city, billing_state, billing_country, billing_zip,quantity_sold, total_price, 
customer.customer_id,first_name,last_name,address_1, address_2, city, state, country, zip, discount, active, 
product.product_id,product_name, desc, manufacturer, sku_number, unit_price,vendor
FROM Order JOIN Product ON Order.Product_id=Product.product_id
JOIN Customer ON Order.customer_id=Customer.customer_id 
WHERE order_id=2477843;

4.Show the first_name, last_name, and the total amount of all orders for customer_id 87162412.

SELECT first_name,last_name, total_price as total_amount
FROM Customer, Order
WHERE Customer. customer_id=Order.customer_id AND customer.customer_id=87162412;

5.Show the customer_id, first_name, and last_name of any customers having orders totaling more than $5000 to date.

SELECT customer_id, first_name, last_name
FROM Customer,Order
WHERE Customer.customer_id=Order.customer_id AND total_price>5000;

6.Write a query that returns a Boolean flag if the total_price of an order is greater than or equal to $5,000.
(I honestly have no clue what this question is asking but here is what I came up with.)

Select order_id, CASE WHEN total_price>=5000 THEN cast(1 as bit) ELSE cast(0 as bit) as totalgreater5k
FROM Order;

ERDiagram

Recommended Answers

All 2 Replies

From 4 onward I think you'll need to use SUM() and GROUP BY. Look at them in the manual, and then re-read the question.

For 4th query

SELECT distinct first_name,last_name, sum(total_price)
FROM Customer, Order
WHERE Customer. customer_id=Order.customer_id AND customer.customer_id=87162412 
group by first_name,last_name

For 5th query

select Customer.customer_id, first_name,last_name 
from Customer, Order 
WHERE Customer.customer_id=Order.customer_id 
group by customer.customer_id,first_name,last_name 
having sum(total_price)>5000
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.