小编Jay*_*lde的帖子

LEFT OUTER JOIN如何返回比左表中存在的更多记录?

我有一个非常基本的LEFT OUTER JOIN来返回左表中的所有结果以及来自更大表的一些附加信息.左表包含4935条记录,但当我将其连接到另一个表时,记录计数明显更大.

据我所知,LEFT OUTER JOIN将返回左表中的所有记录,右表中的匹配记录和任何无法匹配的行的空值,这是绝对的福音,因此我的理解是它应该不可能返回比左表中存在的行更多的行,但它发生的一切都是一样的!

SQL查询如下:

SELECT     SUSP.Susp_Visits.SuspReason, SUSP.Susp_Visits.SiteID
FROM         SUSP.Susp_Visits LEFT OUTER JOIN
                      DATA.Dim_Member ON SUSP.Susp_Visits.MemID = DATA.Dim_Member.MembershipNum
Run Code Online (Sandbox Code Playgroud)

也许我在语法上犯了一个错误,或者我对LEFT OUTER JOIN的理解是不完整的,希望有人可以解释这是如何发生的?

后记

感谢你们给出了很好的答案,我对LEFT OUTER JOINS的理解现在要好得多,但是有人可以提出一种方法可以修改这个查询,这样我只能获得与左表中存在的记录一样多的记录吗?

此查询纯粹是为了生成报告,而重复的匹配只是简单地混淆了问题.

/后记

sql t-sql sql-server sql-server-2005

146
推荐指数
9
解决办法
18万
查看次数

以编程方式创建一个asp:Button?

我正在使用我的代码隐藏页面以编程方式创建一个保存按钮:

    Button btnSave = new Button();
    btnSave.ID = "btnSave";
    btnSave.Text = "Save";
Run Code Online (Sandbox Code Playgroud)

但是我认为这必须创建一个html按钮或者可能需要其他东西,因为我似乎无法在下一行中设置OnClick属性,我可以指定OnClientClick,但这不是我想要设置的那个.

.net c# asp.net servercontrols

7
推荐指数
3
解决办法
8108
查看次数

有条件地替换SELECT中的值

我有一个查询返回给定员工的工资成本

SELECT     totalhours * staffbaserate AS TotalCost
FROM         newrotaRaw
WHERE     staffref = @staffref
Run Code Online (Sandbox Code Playgroud)

但是如果返回值> 105,我需要做一些额外的数学运算.我需要做的数学运算是,如果值<105,则返回原值,但是如果值大于105,那么我需要做值*1.128.

例如:

约翰史密斯的成本是90,因此查询应该返回90

David Smith的成本为140因此查询应返回157.92

我确定有一些方法可以使用replace来让它做我想要的但是我只使用了替换完全匹配,在这种情况下,替换是以值为条件的.

任何帮助将非常感激!

sql sql-server

3
推荐指数
1
解决办法
9838
查看次数

标签 统计

sql ×2

sql-server ×2

.net ×1

asp.net ×1

c# ×1

servercontrols ×1

sql-server-2005 ×1

t-sql ×1