0
我遇到了使用Oracle 11g快速版設置的SQL數據庫的問題。我希望能夠運行一個SELECT查詢,其中對於每個客戶,我想顯示客戶的號碼以及所有該客戶的信用交易(具有'C'類型的交易)金額爲開戶狀態。跨多個表和行/列進行查詢
問題......我已經查看了不同類型的查詢命令,我完全失去了如何以最簡單的術語格式化此命令。任何幫助,將不勝感激。這裏是我的表格式:
CREATE TABLE Customer_DML
CustomerNumber CHAR(12) CONSTRAINT customer_pk PRIMARY KEY,
SSN CHAR(9) CONSTRAINT customer_uq_ssn UNIQUE,
FirstName VARCHAR2(25) CONSTRAINT customer_nn_fname NOT NULL,
LastName VARCHAR2(25) CONSTRAINT customer_nn_lname NOT NULL,
Telephone CHAR(10),
DateOfBirth DATE
);
CREATE TABLE Account_DML (
AccountNumber CHAR(15) CONSTRAINT account_pk PRIMARY KEY,
Type CHAR(1) CONSTRAINT account_ck_type CHECK (Type IN ('S','C')),
DateCreated DATE DEFAULT SYSDATE CONSTRAINT account_nn_datecreated NOT NULL,
Status VARCHAR2(10) CONSTRAINT account_nn_status NOT NULL,
Customer CHAR(12) CONSTRAINT account_fk_customer REFERENCES
Customer_DML(CustomerNumber)
ON DELETE CASCADE
);
CREATE TABLE Transaction_DML (
TransactionNumber CHAR(15) CONSTRAINT transaction_pk PRIMARY KEY,
Type CHAR(1) CONSTRAINT transaction_ck_type CHECK (Type IN ('D','C')),
Amount Number(10,2) CONSTRAINT transaction_nn_amount NOT NULL,
Account CHAR(15) CONSTRAINT transaction_fk_account REFERENCES Account_DML(AccountNumber)
ON DELETE SET NULL
);
我至今是沿着這些線路:
SELECT c.CustomerNumber,
t.SUM(Amount) AS SumAmt
FROM Customer_DML c, Account_DML a
ON c.CustomerNumber = a.Customer
JOIN Transaction_DML t
ON a.Customer = a.AccountNumber
,但我有我真的關閉這個基地的感覺。
任何提示或解決方案將不勝感激。如果你需要更多信息,我會很樂意提供我能做的。
當您使用「帳戶表」時,是指Account_DML還是帳戶列?我嘗試將它粘貼到我的命令行中,並且出現了一些錯誤。 – Smackelbap
而當我正在糾正這是「Account_DML」時,我在第5行出現錯誤,表示「C」。「客戶」:無效的標識符。 – Smackelbap
我提交了更正的修改。嘗試將c.Customer更改爲a.Customer,同時在select和group中都選擇。 –