ABC Markets sell products to customers. The relational diagram shown in Figure P
ID: 3746908 • Letter: A
Question
ABC Markets sell products to customers. The relational diagram shown in Figure P10.6 represents the main entities for ABC’s database. Note the following important characteristics:
-A customer may make many purchases, each one represented by an invoice.
*The CUS_BALANCE is updated with each credit purchase or payment and represents the amount the customer
*The CUS_BALANCE is increased (+) with every credit purchase and decreased (–) with every customer payment.
*The date of last purchase is updated with each new purchase made by the customer.
*The date of last payment is updated with each new payment made by the customer.
-An invoice represents a product purchase by a customer.
*An INVOICE can have many invoice LINEs, one for each product purchased.
*The INV_TOTAL represents the total cost of the invoice, including taxes.
*The INV_TERMS can be “30,” “60,” or “90” (representing the number of days of credit) or “CASH,” “CHECK,” or “CC.”
*The invoice status can be “OPEN,” “PAID,” or “CANCEL.”
-A product’s quantity on hand (P_QTYOH) is updated (decreased) with each product sale.
-A customer may make many payments. The payment type (PMT_TYPE) can be one of the following:
“"CASH” for cash payments.
*“CHECK” for check payments.
*“CC” for credit card payments.
-The payment details (PMT_DETAILS) are used to record data about check or credit card payments:
*The bank, account number, and check number for check payments.
*The issuer, credit card number, and expiration date for credit card payment
Using this database, write the SQL code to represent each of the following transactions. Use BEGIN TRANSACTION and COMMIT to group the SQL statements in logical transactions.
(A) On May 11, 2014, customer 10010 makes a credit purchase (30 days) of one unit of product 11QER/31 with a unit price of $110.00; the tax rate is 8 percent. The invoice number is 10983, and this invoice has only one product line.
(B) On June 3, 2014, customer 10010 makes a payment of $100 in cash. The payment ID is 3428.
FIGUREThe ABC Markets relational diagram P10.6 6 LINE INV_NUMBER 7 INV-NUMBER PRODUCT LINENUMBER P.CODE INE UNITS LINE PRICE P.CODE P DESCRIPT - CUS AREACODE CUS PHONE CUS CREDITLIMIT CUS BALANCE P DISCOUNT CUS DATELSTPUR PAYMENTS VENDOR V CODE V NAME V CONTACT V AREACODE VPHONE V.STATE V ORDER PMT DATE CUS CODE 0 PMT DETAILS Cengage Learning © 2015Explanation / Answer
------------------------------------------
PART 1
------------------------------------------
/* DATE is represented as YYYY-MM-DD */
BEGIN TRANSACTION;
UPDATE CUSTOMER SET CUS_BALANCE = CUS_BALANCE + 118.8 , CUS_DATELSTPUR = '2014-05-11' WHERE CUS_CODE = 10010;
INSERT INTO INVOICE (INV_NUMBER,CUS_CODE,INV_DATE,INV_TOTAL,INV_TERMS,INV_STATUS) VALUES (10983,10010,'2014-05-11',118.8,'30','OPEN');
INSERT INTO LINE (INV_NUMBER,LINE_NUMBER,P_CODE,LINE_UNITS,LINE_PRICE) VALUES (10983,1,'11QER/31',1,110);
UPDATE PRODUCT SET P_QTYOH = P_QTYOH - 1 WHERE P_CODE = '11QER/31';
COMMIT ;
------------------------------------------
PART 2
------------------------------------------
/* SETTING PMT_DETAILS IN PAYMENT table as '' (empty string) as it's paid in CASH */
BEGIN TRANACTION;
UPDATE CUSTOMER SET CUS_BALANCE = CUS_BALANCE - 118.8 ,CUS_DATELSTPMT = '2014-06-03' WHERE CUS_CODE = 10010;
/* Update the INV_TERMS AND INV_STATUS */
UPDATE INVOICE SET INV_TERMS = 'CASH' ,INV_STATUS = 'PAID' WHERE INV_NUMBER = 10983;
INSERT INTO PAYMENTS (PMT_ID,PMT_DATE,CUS_CODE,PMT_AMT,PMT_TYPE,PMT_DETAILS) VALUES (3428,'2014-06-03',10010,118.8,'CASH','');
COMMIT ;