我是新手,请原谅我的无知。

临时表#all具有三列:cod,cust_name,end_date。 该表有2500行。 当下面的查询运行时,我没有得到所有的代码,但它给了我大约400行。

对于HCS_Dtl和HCIS_Hd表:两者中总会有一个匹配的行

    SELECT p.cod, count(d.FormNo), SUM(d.NetAmt) 
    FROM #all p left outer join HCS_Dtl d on p.cod=d.Code
        join HCIS_Hd h on d.FormNo=h.FormNo
    WHERE 
    h.TimeStmp between '2015-03-01 00:00:00' and '2015-03-28 23:59:59'
    GROUP BY p.cod

我需要从#all中获得这2500行,即使它们在此时间段内没有我在查询的where子句中提到的表单也是如此。 怎么可能呢?

我正在使用SQL Server 2008 R2

#1楼 票数:0

尝试在表HCIS_Hd上使用LEFT JOIN

 SELECT p.cod, count(d.FormNo), SUM(d.NetAmt) 
FROM #all p left outer join HCS_Dtl d on p.cod=d.Code
    LEFT JOIN HCIS_Hd h on d.FormNo=h.FormNo
WHERE 
h.TimeStmp between '2015-03-01 00:00:00' and '2015-03-28 23:59:59'
GROUP BY p.cod

  ask by xaahir translate from so

未解决问题?本站智能推荐:

3回复

在此表的左联接之后如何使用左外部联接?

我想要加入4个表以便在其中获取必要的数据。 表A. 表B 表C 表D 我要在此处执行的操作是使用到期日期和未付款状态检索表B中的数据,并且在表A中找不到该数据。 我当前的查询: 该查询当前执行的操作是,它仅获取表B中的数据(表B的ID 4除外)
1回复

左外联接匹配

我有以下查询,我对其进行了修改,使其能够在名为Futuredial_Validation的新表中查找,我编写了所有条件和联接,但仍未在该表中查找,仅在一个名为cellscripter的表中,其余的该查询有效,非常感谢您的帮助,谢谢:
2回复

右外连接到左外连接

我在sqlserver中有一个查询,需要将其转换为sqlite3,但是此查询使用“右外部联接”,问题是sqlite还不支持该运算符。 如何将查询转换为仅使用“左外部联接”而不是“右”外部联接? 谢谢。 PS:sqlite连接的优先级和关联性也给我带来麻烦,不知道如何通过重新排
2回复

表之间的外部联接

有一个表table1包含列hId 。 它也可以包含数值,还包括0和null 。 经过某种连接关系后,每个table1.hId都有一个full name ,但仅当hId !=0 or null 然后table2.Hpid = table1.hId -- but only if hId i
3回复

3个表上的外连接

我有3个表,Client,Tool和ClientTools。 一个客户端可以有多个工具,因此ClientTools充当数据透视表(仅包含Id)。 对于给定的客户,我想要的是拥有完整的工具列表,以及指示客户端是否具有此工具的标志。 我到目前为止的地方是: 哪个正确地给了我所有
4回复

将简单的Left Outer Join和group by SQL语句转换为Linq

2个表:用户和警报 表:用户 UserID(int),FullName(varchar) 表:Alarm AssignedTo(int),已解决(bool) 查询: 结果: 对于我的生活,我无法弄清楚如何将其变成Linq查询。 我在分组功能方面遇到了麻烦。
1回复

通过内部联接和左侧外部联接将6个表联接在一起-LINQ

我有6张桌子。 像这样: 这是我要在LINQ中重新编码的SQL代码。 是否有人可以指出将其转换为LINQ语句的正确方向? 我对linq语句的这个概念并不陌生。 谢谢你的帮助!
1回复

左外部联接,多表,以填充经典ASP应用程序中的复选框

我一直在使用sql server 2008中的几个表,并且数据在Classic ASP应用程序中使用。 以下查询(请参见下文)已用于使用复选框填充“更新”页面。 第一个表(KSA)填充了复选框,而第二个表(KSA_Out)提供了用户选中的复选框。 每个“目标”都有一组这些KSA复选框,而我