【发布时间】:2013-07-05 19:24:45
【问题描述】:
我需要为一些从我没有创建的数据库中提取数据的帐户做一个声明。现在这个特定的表有点奇怪,我很难把它拉下来。基本上这里是此刻的查询......
string query = "SELECT Date, TransCode, Amount, BalanceDebito, BalanceCredito FROM ledger WHERE (DR_Socio = @SocioNum) OR (CR_SOCIO = @SocioNum) ORDER BY Date DESC";
我一直在阅读有关 TRANSACT 和其他内容的信息,但我无法得出一个查询,该查询确定 DR_Socio 是否与 @SocioNum 相同,则 BalanceDebito 成为 Balance 列,否则 CR_SOCIO 是否与 @ 相同SocioNum 然后名为 BalanceCredit 的列成为 Balance 列,如果 CR_Socio 和 DR_Socio 列都与 @SocioNum 相同,则它不应传递任何值。基本上……
If DR_Socio = @SocioNum THEN
BalanceDebito as Balance
Else if CR_Socio @SocioNum then
BalanceCredito as Balance
Else If CrSocio and Dr_Socio = @SocioNum then
Do Nothing
End If
这就是它的要点。我需要把它变成一个 SQL 查询。 BalanceDebito 和 BalanceCredito 是两个不同的列,我需要将它们作为一个列用于报告目的,因为我正在创建 PDF(上帝保佑 iTextSharp),但我不能有 BalanceDebito 和 BalanceCredito 的两列。这可能吗?我很卡住,不知道如何进行。帮助将不胜感激。我正在使用 C#、ASP.NET、MVC 进行编程,使用 iTextSharp dll 来创建 PDF(效果很好),并使用 SQL Server 2008 来创建数据库。
【问题讨论】:
-
案例陈述是您所需要的。像 If/elseif 一样按顺序求值。
标签: sql-server sql-server-2008 c#-4.0