小编SVI*_*SVI的帖子

获取AVG忽略Null或Zero值

如何获取AVG列忽略NULL和零值?

我有三列来获得他们的平均值,我尝试使用以下脚本:

SELECT distinct
     AVG(cast(ISNULL(a.SecurityW,0) as bigint)) as Average1
     ,AVG(cast(ISNULL(a.TransferW,0) as bigint)) as Average2
     ,AVG(cast(ISNULL(a.StaffW,0) as bigint)) as Average3
FROM Table1 a,  Table2 b
WHERE a.SecurityW <> 0 AND a.SecurityW IS NOT NULL
AND a.TransferW<> 0 AND a.TransferWIS NOT NULL
AND a.StaffW<> 0 AND a.StaffWIS NOT NULL
AND MONTH(a.ActualTime) = 4
AND YEAR(a.ActualTime) = 2013
Run Code Online (Sandbox Code Playgroud)

我没有得到任何结果,但是三列的值包括NULL和零!

无论如何在获得平均值之前排除空值?

例: AVERAGE(NOTNULL(SecurityW))

sql t-sql sql-server sql-server-2008-r2

36
推荐指数
4
解决办法
8万
查看次数

将逗号分隔的字符串转换为整数,以便在"IN"SQL中使用

我将逗号分隔的数字作为字符串传递给存储过程,参数在IN关键字中使用,但是当我执行SP(参数如"1,2")时,它给出了一个错误:

将varchar值'1,2'转换为数据类型int时转换失败.

存储过程是:

ALTER PROCEDURE [Reports].[LocationSummary]
    @dtFrom VARCHAR(MAX),
    @dtTo VARCHAR(MAX),
    @passTypeId VARCHAR(MAX),
    @passCategoryId VARCHAR(MAX),
    @passTransId VARCHAR(MAX),
    @printOption VARCHAR(MAX),
    @printLocationId VARCHAR(MAX)
AS
BEGIN
    SELECT Admins.PLocations.ArabicName AS PLocationA, 
           Admins.PLocations.EnglishName AS PLocationE,
           SUM(CASE WHEN Port.Info.Printed = 1 THEN 1 ELSE 0 END) AS Printed,
           SUM(CASE WHEN Port.Info.Printed = 0 THEN 0 ELSE 1 END) AS NotPrinted,
           SUM(CASE WHEN Port.PortPrintLog.PortId IS NOT NULL THEN 1 ELSE 0 END) AS Reprinted

    FROM Port.Info INNER JOIN
           Port.PortRequests ON 
           Port.Info.PassRequestId = Port.PortRequests.ID LEFT JOIN
           Port.PortDefinitions …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server sql-server-2008

6
推荐指数
2
解决办法
1万
查看次数

IIS显示服务器错误而不是自定义错误

我正在使用MVC 5并且我正在使用自定义视图处理我的错误,例如(404,403等)它在我的本地IIS上正常工作但是当我在登台服务器上发布时它显示IIS服务器错误有关这些错误代码的消息.

它显示了这条消息:

显示此消息

代替:

而不是这个

我修改了web.configfor<customErrors mode="Off" />

Global.asax中

        if ((Context.Server.GetLastError() is UnauthorizedAccessException))
        {
            log.LogError(Context.Server.GetLastError().Message, Context.Server.GetLastError());
            customErrorPage = @"~/Error/?id=403"; //security
        }
        else if ((Context.Server.GetLastError() is HttpException) && (((HttpException)Context.Server.GetLastError()).GetHttpCode() == 404))
        {
            //** Handle 404 error and response code
            log.LogError("404", Context.Server.GetLastError());
            customErrorPage = @"~/Error/?id=404";
        }
        else
        {
            log.LogError(Context.Server.GetLastError().Message, Context.Server.GetLastError());
            customErrorPage = @"~/Error";
        }

        if (ConfigurationHelper.Common.ShowCustomErrorPage)
        {
            var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
            Response.Redirect(urlHelper.Content(customErrorPage), false);
            Server.ClearError();
        }
Run Code Online (Sandbox Code Playgroud)

错误控制器:

    public ActionResult Index(string id)
    {
        if (!string.IsNullOrEmpty(id) && id.Equals("404"))
        {
            Response.StatusCode …
Run Code Online (Sandbox Code Playgroud)

iis asp.net-mvc server-error

6
推荐指数
1
解决办法
1722
查看次数

由 urlmon.dll 引起的“试图读取或写入受保护的内存”

我知道这已经被问过很多次了,但不幸的是我没有找到解决我的问题的方法,我正在使用urlmon.dll从字节数组中查找 MIME 类型,但我收到了 IIS 进程的崩溃w3wp.exe

尝试读取或写入受保护的内存。这通常表明其他内存已损坏。

编码:

public static int MimeSampleSize = 256;

public static string DefaultMimeType = "application/octet-stream";

[DllImport(@"urlmon.dll", CharSet = CharSet.Auto)]
private extern static uint FindMimeFromData(
    uint pBC,
    [MarshalAs(UnmanagedType.LPStr)] string pwzUrl,
    [MarshalAs(UnmanagedType.LPArray)] byte[] pBuffer,
    uint cbSize,
    [MarshalAs(UnmanagedType.LPStr)] string pwzMimeProposed,
    uint dwMimeFlags,
    out uint ppwzMimeOut,
    uint dwReserverd
);

public static string GetMimeFromBytes(byte[] data)
{
    try
    {
        uint mimeType;
        FindMimeFromData(0, null, data, (uint)MimeSampleSize, null, 0, out mimeType, 0);

        var mimePointer = new IntPtr(mimeType);
        var mime = Marshal.PtrToStringUni(mimePointer); …
Run Code Online (Sandbox Code Playgroud)

c# iis urlmon

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

将 IEnumerable&lt;T&gt; 项添加到 IEnumerable&lt;T&gt;

我有以下几点:

 foreach (var item in selected)
 {
    var categories = _repo.GetAllDCategories(item);
    var result = from cat in categories
                 select
                     new
                     {
                        label = cat.Name,
                        value = cat.Id
                     };
}
Run Code Online (Sandbox Code Playgroud)

该方法GetAllDCategories返回一个IEnumerable<T>

如何添加resultIEnumerable包含result循环中所有选定项目的所有项目的新对象?

c# linq ienumerable

2
推荐指数
2
解决办法
6436
查看次数

用于获取智能卡序列号的 APDU 命令

如何使用 APDU 命令获取智能卡的序列号?我尝试使用 SCardGetAttrib 函数来查询它,winscard.dll但没有成功,我被告知使用 APDU 命令来执行此操作,因为没有标准方法来获取序列号。问题是我无法弄清楚我的智能卡是什么类型!因此,我查看了一些流行智能卡制造商的文档,但没有找到获得序列号的方法!

我的读卡器是ACR88。

c# apdu smartcard

0
推荐指数
1
解决办法
1万
查看次数