我是一名sql初學者,並試圖創建sql查詢以從下面我描述的這三個表中獲取數據。
「我需要顯示所有客戶端數大於1的聯繫人以及屬於他們的用戶,並最終按用戶進行分組。」
現在這是我試圖創建的SQL語句,但我有sqlplus的錯誤ORA-00933,SQL命令不能正確剛剛結束不久的「從客戶爲k」:用sql語句和聚合列計數合併三個表列(Oracle11G2)
SELECT COUNT(K .bkl),o.fnamek,o.lnamek,u.bu,u.fname,u.lname,k.namekl
from client AS k,contact AS o,usere AS u
where o.bko = k。 bko和o.bu = u.bu和count(k.bkl)> 1
group by u.bu;
CREATE TABLE Usere
(BU NUMBER(2)NOT NULL約束PK1 PRIMARY KEY,
FNAME VARCHAR2(20)NOT NULL,
L-NAME VARCHAR2(20)NOT NULL,
扇區VARCHAR2(20 )NOT NULL
);
CREATE TABLE聯繫
(BKO NUMBER(2)NOT NULL約束PK2 PRIMARY KEY,
fnamek VARCHAR2(20)NOT NULL,
lnamek VARCHAR2(20)NOT NULL,
BU NUMBER(2) DEFAULT 0 NOT NULL,
CONSTRAINT fk1 FOREIGN KEY(BU)REFERENCES Usere(bu)
);
CREATE TABLE客戶
(BKL NUMBER(3)NOT NULL約束PK3 PRIMARY KEY,
namekl VARCHAR2(20)NOT NULL,
地址VARCHAR(40)NOT NULL,
BKO NUMBER(2) DEFAULT 0 NOT NULL,
CONSTRAINT fk2 FOREIGN KEY(bko)參考資料聯繫人(bko)
);
任何人都可以幫忙嗎?非常感謝你。
非常感謝您的回覆,我知道我需要學習很多東西,正如我所說,我在甲骨文掌握的開始階段。 你好,我試圖實現你的查詢,我得到「現在行選擇」作爲輸出。 我已經檢查過,並且在桌面客戶端中肯定有多於一個客戶端的聯繫人。 例如,「從bko = 10的客戶端中選擇bkl」將返回該特定聯繫人下的3個客戶端名稱? – user3586784
@ user3586784。 。 。那麼,刪除'having'子句,你會看到列的組合是唯一的。 –
有沒有辦法像排序視圖一樣顯示已計數的客戶數量,而不是重複他們分配給每個客戶的聯繫人?謝謝。 – user3586784