Join 在联接中使用distinct

Join 在联接中使用distinct,join,distinct,Join,Distinct,我还是SQL的新手,需要运行一个连接3个表的报告。第三个表有我需要的字段的副本。所以我试图加入一个独特的选择,但帽子不起作用。有人能建议我使用正确的代码吗 我的代码如下所示: 请问有人能帮忙吗?我将非常感激 提前谢谢 select distinct c.customer_code, ms.salesman_code, SUM(c.revenue_amt) FROM c_revenue c, m_customer mc, m_salesman ms

我还是SQL的新手,需要运行一个连接3个表的报告。第三个表有我需要的字段的副本。所以我试图加入一个独特的选择,但帽子不起作用。有人能建议我使用正确的代码吗

我的代码如下所示: 请问有人能帮忙吗?我将非常感激

提前谢谢

select distinct
    c.customer_code,
    ms.salesman_code,
    SUM(c.revenue_amt)
FROM
    c_revenue c,
    m_customer mc,
    m_salesman ms
where
    c.customer_code = mc.customer_code
    AND mc.salesman_code = ms.salesman_code
    AND ms.comp_code = '00'
    AND Revenue_Date BETWEEN (from_date AND to_date)
group by
    c.customer_code, ms.salesman_name
上面将返回客户代码、销售人员代码和收入金额总和的任何不同组合,其中c.CustomerCode与mc.Customer_代码匹配,同一mc记录与ms.Saleser_代码匹配,ms记录的comp_代码为“00”,且收入_日期介于from和to变量之间。然后,根据客户代码和销售人员姓名对整个结果进行分组;唯一会导致重复出现的事情是,如果SUMrevenue在某种程度上有所不同


解释一下,如果你只是在做一个直接连接,你不需要连接关键字。我发现它会让事情变得复杂;只有在进行奇数连接(如左/右连接)时才需要它们。我不知道您的数据模型,因此上面的数据可能仍然会返回重复的数据,但如果是,请让我知道。

首先,有许多不同的数据库使用SQL:SQL Server、MySQL、SQLite、Oracle、Sybase等。。。它们都使用SQL结构化查询语言的变体。尝试指定您使用的选项以获得更详细的答案。我假设您目前正在使用SQL Server解决此问题。我诚挚的道歉。这是一个SQL Server数据库。我不知道为什么,但代码不起作用。给我一个“非分组表达式”。请尝试删除不同的;刚刚意识到,小组应该自己照顾不同的人。否则,我不确定;这个问题应该是好的。我会做一个快速测试,然后给你回复。我很抱歉。你的代码运行得非常好。我在执行时犯了错误,非常感谢。我发现了问题并解决了。太好了!我还注意到,我们选择了ms.saller_代码,但根据ms.saller_名称分组;我的错,我应该看到的。很高兴一切顺利;祝你快乐!Kalmino,有没有办法在每个单独的列中获得每个月的收入金额?如;如果我选择一个12个月的日期范围,我能有12列显示该销售员每个月的收入吗?或者,如果我选择8个月的日期范围,我可以有8列显示该销售员每月的收入吗?
/* I also tried this variation to get a distinct */

JOIN M_SALESMAN MS ON MC.SALESMAN_CODE = 
(SELECT distinct(SALESMAN_CODE) FROM M_SALESMAN)
select distinct
    c.customer_code,
    ms.salesman_code,
    SUM(c.revenue_amt)
FROM
    c_revenue c,
    m_customer mc,
    m_salesman ms
where
    c.customer_code = mc.customer_code
    AND mc.salesman_code = ms.salesman_code
    AND ms.comp_code = '00'
    AND Revenue_Date BETWEEN (from_date AND to_date)
group by
    c.customer_code, ms.salesman_name