在select语句SQL和访问中选择语句

时间:2013-03-19 12:46:54

标签: sql select nested

我正在尝试选择已在数据库中销售的产品的最高价格,我有三个表格(tbl_CarForSaletbl_Commisiontbl_Salesman)。

我想要做的是选择已售出的汽车的最高价格,然后,使用该记录,能够计算所获得的佣金,并将其链接到销售员。我有以下内容,它返回最高汽车价格,但我不知道如何直接使用返回的记录来获取其他信息。

SELECT Max(tbl_CarForSale.carprice)
FROM (SELECT tbl_CarForSale.*, tbl_Salesman.*,  from tbl_CarForSale, 
WHERE bolSold = true)

我猜我需要把它放到另一个SELECT语句中并嵌套它,但我不知道该怎么做。

编辑:

根据要求,字段名称在此处。

tbl_salesman: name
tbl_CarForSale: registration, soldDatem salesmanNo, carPrice, bolSold
tbl_Commision: minValue, maxValue, comAvliable

基本上,委员会表格背后的想法是,销售员根据汽车的价格获得佣金,因此我有一个查询汽车价格的查询,并将返回销售员赚取的佣金

2 个答案:

答案 0 :(得分:3)

这样的事情应该有效。

select your fields
from your tables
where bolSold = true
and tbl_CarForSale.carprice = (select max(carprice) from tbl_carForSale)

答案 1 :(得分:0)

tbl_salesman也需要具有salesmanNo属性,就像表具有要加入的like属性一样。这也适用于其他表格。

什么是bolSold?

如果我理解正确,tbl_Commision作为一个表没有意义,而是一个函数或在应用程序级别处理一些特殊查询。

如果salesmanNo中包含tbl_salesman,则应提供每个销售人员销售的汽车的最高价格。

SELECT salesman.name, MAX(tbl_CarForSale.carprice) FROM tbl_salesman JOIN tbl_CarsForSale GROUP BY salesman.name ORDER BY MAX(tbl_CarForSale.carprice);

您可以在其末尾添加WHERE子句以指定大于和小于约束,或者您可以创建一个函数并将上面示例中的MAX()函数替换为新创建的函数。 / p>

标准化一点也许有意义。我不知道你的确切要求,但我会考虑这样的事情:

car: registration, carPrice, bolSold
salesman: salesmanNo, name
sold_record: date, salesmanNo, registration REFERENCES car.registration,salesmanNo REFERENCES salesman.salesmanNo