在我的客戶表中,有一行稱爲* inactive_status *,它始終設置爲'Active'。這是除非* is_paid *(位於Billing_Info表)設置爲0.我需要使用更新命令,但無法弄清楚。以下是我迄今爲止:SQL從一個表更新到另一個表,沒有公共數據
UPDATE Customer
SET inactive_status = 'INACTIVE'
WHERE
(SELECT is_paid
FROM Billing_Info
WHERE billing_info.is_paid = 0);
DDL:
CREATE TABLE billing_info (
billing_info_id INT,
bill_day_id INT,
is_past_due NUMBER(1,0) NOT NULL,
date_last_paid DATE,
is_paid_this_month NUMBER(1,0) NOT NULL,
paid_amount DECIMAL(6,2) NOT NULL,
bill_amount DECIMAL(6,2) NOT NULL,
CONSTRAINT billing_info_id_pk PRIMARY KEY(billing_info_id));
CREATE TABLE customer (
customer_id INT,
join_date DATE NOT NULL,
billing_info_id INT NOT NULL,
inactive_status VARCHAR2(25),
contact_info_id INT NOT NULL,
CONSTRAINT customer_id_pk PRIMARY KEY (customer_id));
有什麼建議?
在您的billing_info表中應該有一個customer_id。否則,您如何知道哪些Cusomters應該更新? – CoffeeMonster 2013-02-16 02:49:39
有,但是customer_id與inactive_status沒有任何關係。我正在使用別人的工作,不能回去改變任何東西。基本上每個客戶都有儲存在多個表格中的信息,而我正在處理的數據現在沒有鏈接,但需要鏈接。 – Comicstorm 2013-02-16 03:21:32
請發佈您的DDL(創建表語句)'Customer'和'Billing_Info'兩個表。 – peterm 2013-02-16 03:42:16