小编tar*_*058的帖子

SQL - 在SELECT中使用多个CASE语句对性能有何影响 - Teradata

所以我有一个查询需要SELECT中的一堆CASE语句.这不是原始设计,而是妥协的一部分.

所以查询看起来像这样:

SELECT
  CONT.TABLE.FINC_ACCT_NM,
  CONT.TABLE.FINC_ACCT_ID,
  CONT.TABLE.CURR_END_OF_PERD_ACTL_VAL,
  CONT.TABLE.PREV_END_OF_PERD_ACTL_VAL,
  CONT.TABLE.VARNC_PLAN_VAL,
  CONT.TABLE.OUTLOOK_BDGT_PLAN_VAL,
  CONT.TABLE.PERD_END_RPT_DT,
  CONT.TABLE.PLAN_VERS_NM,
  CONT.TABLE.FRMT_ACTL_CD,
  CONT.TABLE.FRMT_PLAN_CD,
  CONT.TABLE.RPT_PERD_TYPE_CD,
  CASE 
                WHEN ( CONT.TABLE.FINC_ACCT_ID )=           'XXXX'        and ( CONT.TABLE.BAL_TYPE_CD ) =             'EOP'      then      '  Net Interest Income'  
                WHEN ( CONT.TABLE.FINC_ACCT_ID )=           'XXXX'        and ( CONT.TABLE.BAL_TYPE_CD ) =             'EOP'      then      '  Non Interest Income'
                WHEN ( CONT.TABLE.FINC_ACCT_ID )=           'XXXX'        and ( CONT.TABLE.BAL_TYPE_CD ) =             'EOP'      then      'Non-Interest Expense'
                WHEN ( CONT.TABLE.FINC_ACCT_ID )=           'XXXX'        and ( CONT.TABLE.BAL_TYPE_CD ) =             'EOP'      then      '  Total Marketing Expense'
                WHEN ( CONT.TABLE.FINC_ACCT_ID …
Run Code Online (Sandbox Code Playgroud)

sql performance teradata

17
推荐指数
2
解决办法
3万
查看次数

SQL联合COUNT()函数未返回预期结果

我试图返回使用语音会议的所有MSFT Lync用户及其使用过的次数.我必须使用UNION,因为该表具有User1和User2,他们都参与了我想要在一列中的会议.

这是SQL:

SELECT U.UserUri,
       COUNT(U.UserUri) AS COUNT
FROM   SessionDetails AS S
       INNER JOIN Users U
         ON S.User1Id = U.UserId
WHERE  MediaTypes = 48
GROUP  BY U.UserUri
UNION
SELECT U.UserUri,
       COUNT(U.UserUri) AS COUNT
FROM   SessionDetails AS S
       INNER JOIN Users U
         ON S.User2Id = U.UserId
WHERE  MediaTypes = 48
GROUP  BY U.UserUri  
Run Code Online (Sandbox Code Playgroud)

返回的结果是参与多个会议的人在列表中出现两次,有两个计数总计.实际上,在输入后,必须按User1Id和User2ID进行分组.如果一个人有9个对话,但只有6个会话,他们将是User1 6次,User2 3次,创建两个不同的分组.

现在我知道为什么,但任何想法如何返回没有重复的UserUri?任何帮助非常感谢!

sql union count lync

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

SQL Server CE WHERE语句行为错误?非常困惑

我正在开发一个Windows移动应用程序.现在我只是测试它可以正确查询本地SQL Server CE数据库.它工作正常,直到我把一个WHERE语句.

这是我的代码:

private void buttonStart_Click(object sender, EventArgs e)
{
   System.Data.SqlServerCe.SqlCeConnection conn = new System.Data.SqlServerCe.SqlCeConnection(
   ("Data Source=" + (System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase), "ElectricReading.sdf") + ";Max Database Size=2047")));

   try
   {
       // Connect to the local database
       conn.Open();
       System.Data.SqlServerCe.SqlCeCommand cmd = conn.CreateCommand();

       SqlCeParameter param = new SqlCeParameter();
       param.ParameterName = "@Barcode";
       param.Value = "%" + textBarcode.Text.Trim() + "%";

       // Insert a row
       cmd.CommandText = "SELECT * FROM Main2 WHERE Reading LIKE @Barcode";
       cmd.Parameters.Add(param);

       cmd.ExecuteNonQuery();

       DataTable data = new DataTable();

       using (SqlCeDataReader reader = cmd.ExecuteReader())
       { …
Run Code Online (Sandbox Code Playgroud)

c# sql where-clause sql-server-ce

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

C#SqlCeException - 缺少参数

我正在开发一个Windows Mobile 6应用程序.它正在访问SQL Server CE数据库,我收到以下错误:

缺少参数.[参数序数= 1]

我没有太多使用SQL Server CE,但使用SQL Server 2008的几乎相同的应用程序执行此代码没有任何问题.我无法弄清楚为什么它告诉我参数丢失了!

这是我的代码:

using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlServerCe;


namespace ElectricBarcodeApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void buttonStart_Click(object sender, EventArgs e)
        {
            System.Data.SqlServerCe.SqlCeConnection conn = new System.Data.SqlServerCe.SqlCeConnection(
            ("Data Source=" + (System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase), "ElectricReading.sdf") + ";Max Database Size=2047")));
            try
            {
                // Connect to the local database
                conn.Open();
                System.Data.SqlServerCe.SqlCeCommand cmd = conn.CreateCommand(); …
Run Code Online (Sandbox Code Playgroud)

c# sqlexception sql-server-ce

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