2016-10-03 113 views
-3

该查询如何返回错误?我无法从我的表中获取最大值和最小值

select CUSTOMER, TOTAL_VALUE 
from CUSTOMER, SALES 
where TOTAL_VALUE in (select max(TOTAL_VALUE), min(TOTAL_VALUE) 
from SALES) 

当我只做max(TOTAL_VALUE)或min(TOTAL_VALUE)时,它完美地工作。但我需要获取TOTAL_VALUE中的最小数字和TOTAL_VALUE中的最大数量。任何人都可以帮我弄清楚为什么这个查询不适合我吗?我想保持(使用在运营商和嵌套子查询)

+2

如果它*返回一个错误*,那么您的屏幕上就会出现*错误*。绝对没有理由不把它包含在你的文章中,以便我们也能看到它。你要求我们帮助你解决你的问题;至少你可以做的是提供你已经拥有的信息供我们使用。 –

+0

对不起,如果我冒犯了你。我试图尽可能多地获取信息。错误是一个页面很长,我不能复制和粘贴,因为我在一个虚拟机。我并不是想要得到那么多的反对票。我只是很困惑我的查询的语法。抱歉。下次尝试会更好... –

回答

0

试试这个(加盟销售和客户表),我有以下结构:

select C.CUSTOMER, MIN(TOTAL_VALUE), MAX(TOTAL_VALUE) 
from SALES S 
join CUSTOMER C on S.Customer_ID=C.Customer_ID 
group by C.CUSTOMER 
order by C.CUSTOMER 
+0

不幸的是,客户只在客户表中。他们共享一个主键customer_id –

+0

进行编辑以回答加入表格。 – BWS

1

这是因为子查询返回2返回一个错误价值观,而不是一个。这里是一个修复:

select CUSTOMER, TOTAL_VALUE 
from CUSTOMER cross join 
    SALES join 
    (select max(TOTAL_VALUE) as maxt, min(TOTAL_VALUE) as mint 
     from sales 
    ) sm 
    where s.total_value in (sm.maxt, sm.mint); 

也就是说,查询没有任何意义。您将获得每个客户的清单以及总体最低和最高销售额的价值。

这并不回答你的问题。如果您还有其他问题,请提供样本数据和预期结果,另一个问题。

+0

我对缺乏信息表示歉意。我并不是想要得到这么多的票。我在一个虚拟机工作,我无法复制和粘贴工作,复制所有的问题的信息。感谢您的帮助和成熟的答案。 –