2016-11-27 9 views
0

に参加して、カウント:のOracle APEXは、私はSQLコードで作成した2つのテーブル持って

CREATE TABLE 
TicketSales(
    purchase# Number(10), 
    client# Integer CONSTRAINT fk1 REFERENCES Customers, 
    PRIMARY KEY(purchase#)); 

CREATE TABLE Customers(
    client# Integer, 
    name Char(30), 
    Primary Key(client#); 

を基本的に表TicketSalesは、チケット販売データを保持し、クライアント#は、顧客テーブルで参照する外部キーです。私はTicketSalesテーブルにある名前を数えたいと思います。私は成功しなかったコードの下で試しました:

select Count(name) 
From Customers 
Where Customers.Client#=TicketSales.Client# 
Group by Name; 

助けていただきありがとうございます。

おかげで、

答えて

0

あなたはそれぞれの名前で、カウントをしたい場合は、名前ではなく、チケットのただのカウントをしたい場合は、節

select c.Name, Count(*) 
From Customers c 
INNER JOIN TicketSales t ON c.Client# =t.Client# 
Group by c.Name; 

によって選択し、グループに名前が含まれ、その後、使用

select Count(*) 
From Customers c 
; 

あるいは、それらに対してrecrdedチケットを持っている個人の数について:

select Count(DISTINCT t.Client#) 
From TicketSales t 
; 
+0

これは魅力のように機能します、ありがとうございます。私はcとtの略語がテーブル名の略語であることを理解できません。前に左の結合を使用しようとしましたが、うまくいかず、内と左の結合に違いはありますか? – kkoz84

+0

はい。これらの結合タイプの大きな違い。多くの説明があります。 –

+0

SQL結合のガイドとしてこれを試してください。 https://www.codeproject.com/articles/33052/visual-representation-of-sql-joins –

関連する問題