所以我有一个查询需要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) 我试图返回使用语音会议的所有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?任何帮助非常感谢!
我正在开发一个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) 我正在开发一个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) sql ×3
c# ×2
count ×1
lync ×1
performance ×1
sqlexception ×1
teradata ×1
union ×1
where-clause ×1