2016-03-25 32 views
1

对基本的SQL问题有点麻烦。基本的SQL加入表

的问题是,我要姓和名找到销售人员,那么他们的社会保险号码,产品说明,产品价格,销售数量,其中总销售量大于5

我将附上下面的数据库信息作为照片。

enter image description here

+0

你试过到目前为止的事情 – mustaccio

+0

到目前为止,我有如下:选择 \t \t名字,姓氏,SIN \t从 \t \t推销员内加入 但现在我不知道如何加入我需要的三个表。 – Brad

回答

2

产品的数量,要得到休息:

SELECT s.FirstName, s.LastName, s.SIN, p.ProductDescription, ps.UnitSalesPrice, ps.QuantitySold 
FROM ProductsSales ps 
LEFT JOIN Products p on p.ProductID = ps.ProductID 
LEFT JOIN Salesmen s on s.SalesmaneID = ps.SellerID 
WHERE ps.ProductID IN 
    (
     SELECT ProductId 
     FROM ProductsSales 
     GROUP BY ProductId 
     HAVING SUM(QuantitySold) > 5 
    ) 
1
SELECT a.FirstName, a.LastName, a.SIN, c.ProductDescription, b.UnitSalesPrice, b.QuantitySold 
FROM Salesmen a 
LEFT JOIN ProductsSales b 
ON a.SalesmanId = b.SellerId 
LEFT JOIN Products c 
ON b.ProductId = c.ProductId 
WHERE b.QuantitySold > 5 
+0

好的,非常感谢你!字母“a”,“b”和“c”只是三个不同的表格正在加入吗? – Brad

+0

这是错误的。它不总计所有销售的产品 – Hogan

+0

@Brad是别名用于识别表格 – Fabio

1
Select a.FirstName, a.LastName, a.SIN From Salesmen as a, 
    c.ProductDescriptio, c.Price, b.sum(QunatitySold) 
inner join ProductSales as b on a.Salesmanid = b.sellerid 
inner join Products as c on c.ProductId = b.ProductId 
having b.sum(QunatitySold)> 5 
group by a.FirstName, b.ProductDescription 
+0

并非所有销售人员销售总数> 5。这是按销售人员和产品类型分组的。 – Hogan

+0

如果查询选择价格和描述,那么我认为聚合等级也适用于产品..(和人) – scaisEdge

1

布拉德,

欢迎SQL。在我刚开始的时候加入我是一种可怕的经历,但它非常简单。一般的概念是这样的:

选择一个加入

如果你想看到的所有记录,这将是两个表之间的共同,你会使用和JOIN。如果你想在两个表结合起来,但仍然显示所有记录您使用LEFT JOIN

的基本语法

SELECT fieldnames FROM tablename alias 
JOIN othertable alias ON firstalias.field = secondalias.field 
--Example 
SELECT animal, food, idtag from animals a 
JOIN food f on a.animalid = f.animalid 

这里假设你在这两种动物表和食台上有一个共同的领域animalid。您还应该在别名前面加上别名,以便更容易理解,如下所示:a.animal, f.food

而且您一直在继续,直到您加入了所需的所有表格。 确保只要求字段名你想

希望帮助售出超过5

SELECT ProductId 
FROM ProductsSales 
HAVING SUM(QuantitySold) > 5 

使用