我想在C#中使用组合框对条件进行数据过滤,所以我使用了这个存储过程:
CREATE PROCEDURE [dbo].[GET_FIXING_ON_CONDITIONS]
@BranchID int,
@MachGroupID int,
@FailGroupID int,
@FailID int,
@MachNo varchar(50),
@DateFrom date,
@DateTO date
AS
SELECT tbBranches.BranchName,
tbMachines.MachNo,
tbMachines.MachType,
tbMachinesGroups.MachGroupName,
tbFails.FailName,
tbFailsGroups.FailGroupName,
tbFailsType.FailTypeName,
tbFixing.FixDate,
tbFixing.FixDetails,
tbFixing.FixPerson
FROM tbMachines
INNER JOIN tbFixing ON tbMachines.MachNo = tbFixing.FixMachNo
AND tbMachines.BranchID = tbFixing.BranchID
INNER JOIN tbFailsGroups ON tbMachines.BranchID = tbFailsGroups.BranchID
INNER JOIN tbFailsType ON tbMachines.BranchID = tbFailsType.BranchID
INNER JOIN tbFails ON tbFixing.FixFailID = tbFails.FailID
AND tbFixing.BranchID = tbFails.BranchID
AND tbFailsGroups.FailGroupID = tbFails.FailGroupID
AND tbFailsGroups.BranchID = tbFails.BranchID
AND tbFailsType.FailTypeID = tbFails.FailType
AND tbFailsType.BranchID = tbFails.BranchID
INNER JOIN tbMachinesGroups ON tbMachines.MachGroupID = tbMachinesGroups.MachGroupID
AND tbMachines.BranchID = tbMachinesGroups.BranchID
INNER JOIN tbBranches ON tbMachines.BranchID = tbBranches.BranchID
AND tbFixing.BranchID = tbBranches.BranchID
WHERE tbBranches.BranchID = @BranchID
AND tbMachinesGroups.MachGroupID = @MachGroupID
AND tbFailsGroups.FailGroupID = @FailGroupID
AND tbFails.FailID = @FailID
AND tbMachines.MachNo = @MachNo
AND tbFixing.FixDate >= @DateFrom
AND tbFixing.FixDate <= @DateTO;
参数由7个组合框补偿,但问题是我必须选择(所有)参数值来显示数据,这不是必需的,我想要的是显示数据,一旦我从任何组合框中选择(任何)值
通常,您可以通过将null传递给用户未设置的任何参数来实现这一点,并且查询遵循以下模式:
WHERE (@BranchID IS NULL OR tbBranches.BranchID = @BranchID)
AND (MachGroupID IS NULL OR tbMachinesGroups.MachGroupID = @MachGroupID)
AND ...
问题内容: 我正在使用MySQL,并且想在SQL中执行一种三元语句,例如: 结果将类似于: 如何做到这一点? 问题答案:
问题内容: 我有一个分组的SQL选择查询。我想对groupby语句之后的所有记录进行计数。有没有一种方法可以直接从sql?例如,有一个包含用户的表格,我想选择不同的城镇和用户 总数 我想有一列包含所有城镇,另一列包含所有行中的用户数。 共有3个镇和58个用户的结果示例是: 问题答案: 这将完成您想要的操作(城镇列表,以及每个城镇中的用户数量): 使用时,您可以使用大多数聚合函数。 更新 (对问题和
是否可以在 SQL SERVER 中的事务中使用 SELECT 语句锁定行?我想锁定该行,以便外部的其他事务无法访问该行。 提交或回滚事务后,应释放该行。这就是我的意思。。。 有人有建议吗?我应该执行 UPDATE 语句来锁定该行吗? 请不要将此问题标记为重复问题。因为,我不是在问UPDATE语句,而是在问SELECT 编辑:我试图“设置事务隔离级别串行化”,但这锁定了太多东西。我的SP很大,它有
问题内容: 我要插入具有自动递增键字段的SQLServer表。(我相信这在SQLServer中称为IDENTITY列。) 在Oracle中,我可以使用RETURNING关键字为INSERT语句提供一个类似于SELECT查询的结果集,该结果集将返回生成的值: 如何在SQLServer中完成此操作? 奖励 :好的,到目前为止,很好的答案,但是,如果可能的话,如何将其放入单个语句中?:) 问题答案: 通
通过选择必须返回html标记的选项 如果是捐赠者名称,则为else
问题内容: 这是问题的简化:我有一个看起来像这样的选择: 并返回的数据快照看起来像这样 我想做的是,如果工作组是内部的,则选择不显示受让人的名称。而是显示工作流。 因此,例如,我想要实现的结果将是这样的: 我希望这是有道理的?基本上是一个条件选择,可以检测某个列是否包含某个值,然后用[whatever]替换另一个列的值。 提前致谢! 编辑我想实现这样的事情: 问题答案: 您没有提到您的DBMS,但