我目前是一名医疗保健分析师.过去几年我一直在使用Microsoft Access来查询和生成报告.我的公司现在希望我学习,扩展我的SQL知识并每天使用SQL Server2008.
我在理解Access和SQL之间的差异方面取得了一些进展,但它们仍然是我不熟悉的很多东西.
我想深入了解子查询,以及如何在SQL中使用SUMIF.下面我已经粘贴了步骤(1)我放在一起的SQL子查询的第一部分.步骤(2)是我想要转换为SQL的Microsoft Access的SQL视图,但是需要对SUMIF语句的正确语法有所了解.
任何见解都非常感谢...
步骤(1)SQL Server 2008:
SELECT
[GROUPING_OF_CLINIC_ID].CLINIC_ID
, OUTPAT_ACCT_REC.CHARGE_CLASS
, [GROUPING_OF_CLINIC_ID].PATIENT_NUMBER
, [GROUPING_OF_CLINIC_ID].REGISTRATION_CD
, OUTPAT_REGISTER.PRIMARY_FINAN
, REPLACE(CONVERT(varchar(10), OUTPAT_ACCT_REC.ENTRY_DATE, 101), '/', '') AS ENTRY_DATE
, SUM(ENTRY_AMOUNT) AS ENTRY_AMOUNT
FROM
OUTPAT_REGISTER
LEFT JOIN
OUTPAT_BILL_REF
ON
(
OUTPAT_REGISTER.PATIENT_NUMBER = OUTPAT_BILL_REF.PATIENT_NUMBER
)
AND (OUTPAT_REGISTER.REGISTRATION_CD = OUTPAT_BILL_REF.REGISTRATION_CD)
LEFT JOIN
OUTPAT_ACCT_REC
ON
(
OUTPAT_BILL_REF.PATIENT_NUMBER = OUTPAT_ACCT_REC.PATIENT_NUMBER
)
AND (OUTPAT_BILL_REF.BILL_REFERENCE = OUTPAT_ACCT_REC.REFERENCE_NUM)
LEFT JOIN
(
SELECT
CLINIC_ID
, PATIENT_NUMBER
, REGISTRATION_CD
FROM
OP_VISIT_HISTRY
GROUP BY
CLINIC_ID
, PATIENT_NUMBER …Run Code Online (Sandbox Code Playgroud) 我正在寻找一些东西来提取我的SSIS/DTSX包中的所有SQL查询.但到目前为止没有什么能帮到我.
我已经看过Microsoft的Microsoft.SqlServer.DTS API了.但他们正在直接提取一些问题.但是DTS中存在的查询:变量 TAG,它们不被提取.
我想要.Net框架中的东西.因为我需要使用输出来执行其他任务.我正在使用C#.
示例代码如下.不解决所有情况
// this function takes the list of task hosts as input
// and gives all the queries present in taskhosts.
public static string ExtractQueriesFromTasks(List<TaskHost> Tasks)
{
string src_query = "";
foreach (TaskHost executable in Tasks)
{
DtsContainer Seq_container = (DtsContainer)executable;
if (executable.InnerObject.GetType().Name == "ExecuteSQLTask")
{
ExecuteSQLTask sqlTask = (ExecuteSQLTask)executable.InnerObject;
string src_query2 = sqlTask.SqlStatementSource;
src_query = src_query + "\n" + src_query2.ToUpper();
}
if (executable.InnerObject.GetType().Name == "__ComObject")
{
IDTSPipeline100 sqlTask = (IDTSPipeline100)executable.InnerObject;
Console.WriteLine(Microsoft.VisualBasic.Information.TypeName(executable.InnerObject)); …Run Code Online (Sandbox Code Playgroud) 我有以下非常简单的单元测试,它重现了DbContext.SaveChanges不是原子的情况.非原子意味着可以在完成所有提交之前读取提交的数据.
添加任务:在循环中,添加新的TestEntity和ReferencingEntity.验证任务:检查是否存在未被任何ReferencingEntity引用的TestEntity - 由于我添加实体的方式,这不应该发生.
单元测试失败......有什么建议吗?
编辑:根据接受的答案 - 为了使用建议的解决方案运行单元测试,添加InitTest方法:
using (var context = new TestContext())
{
var objectContext = (context as IObjectContextAdapter).ObjectContext;
objectContext.ExecuteStoreCommand(string.Format("ALTER DATABASE [{0}] SET READ_COMMITTED_SNAPSHOT ON", context.GetType().FullName));
}
Run Code Online (Sandbox Code Playgroud)
单元测试:
using System.Data.Entity;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Atlit.Server.Tests.Integration.SessionProcessing
{
class TestContext : DbContext
{
public DbSet<TestEntity> TestEntities { get; set; }
public DbSet<ReferencingEntity> ReferencingEntities { get; set; }
}
class TestEntity
{
public int TestEntityId { get; set; }
}
class ReferencingEntity
{
public int ReferencingEntityId { get; …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Deploy选项部署SSDT 2012 SSIS项目.但我得到以下错误:
标题:SQL Server Integration Services
执行用户定义的例程或聚合"deploy_project_internal"期间发生.NET Framework错误:System.ComponentModel.Win32Exception:客户端System.ComponentModel.Win32Exception不保存所需的权限:在Microsoft.SqlServer.IntegrationServices.Server.ISServerProcess .StartProcess(Boolean bSuspendThread)位于Microsoft.SqlServer.IntegrationServices.Server.ServerApi.DeployProjectInternal(SqlInt64 deployId,SqlInt64 versionId,SqlInt64 projectId,SqlString projectName).(Microsoft SQL Server,错误:6522)
如需帮助,请单击:http://go.microsoft.com/fwlink?ProdName = Microsoft%20SQL%20Server&ProdVer = 11.00.5058&EvtSrc = MSSQLServer&EvidID = 6522&LinkId = 20476
知道为什么这个错误?下面是错误的屏幕截图.

嗨,我想制作批处理文件菜单,询问"选择要安装的应用程序?" 例如
选择什么应用程序:_
我想要的是,例如我想安装App2,App3和App5,所以我可以通过App ID的'选择什么应用程序:2,3,5'来输入.当用户选择选项6时,它将安装所有应用程序!
我知道这可以用于bash脚本,但我不确定批处理脚本?
批处理菜单的一个示例是http://mintywhite.com/software-reviews/productivity-software/create-multiple-choice-menu-batchfile/
我不是DBA但我需要缩小数据库,我尝试使用SSMS接口缩小它并不起作用.
统计数据如下:
我也尝试过这个DBCC SHRINKDATABASE ... TRUNCATEONLY命令,也没有改变任何东西.
如何在不丢失数据的情况下缩小此DB(将未使用的空间释放到OS)?
我想要实现的是Column 5:
Column 1 Columns 2 Column 3 Column 4 Column 5
A B D A|B|D
Run Code Online (Sandbox Code Playgroud)
我使用了派生列:
(DT_STR,50,1252)([A] + "|" + [B] + "|" + [C] + "|" + [D])
Run Code Online (Sandbox Code Playgroud)
但我结束了:
Column 1 Columns 2 Column 3 Column 4 Column 5
A B D A|B||D
Run Code Online (Sandbox Code Playgroud)
我很难找到合适的解决方案.
我已经知道的一个问题没有很好的答案.
我有一个我无法改变的第三方应用程序.应用程序的数据库已从MS Access转换为SQL Server 2012.该程序与ODBC连接,不关心后端.它发送非常直接的SQL,似乎也适用于SQL Server.
但是有一个表有一个名为"PLAN"的表,我已经知道它是一个SQL Server关键字.
我知道您通常会使用方括号访问这样的表,但由于我无法更改SQL,我想知道是否有任何"丑陋"的黑客可以覆盖关键字或动态转换SQL.
我有一个SSIS包,我使用VS在服务器上开发.该程序包在Visual Studio中运行良好,但是当我在SQL Server代理中添加作业时,程序包将失败.我从SAGE Line 50 v19中提取数据,因此ODBC驱动程序是32位.我在64位环境中运行.已经将odbc设置为32位,确保代理程序设置为运行32位,但是sill遇到错误.我已经测试过从命令行运行包,如下所示
"C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\DTExec.exe" /FILE "E:\Reporting\Projects\SSIS\SSIS2012\SSIS2012\Package1.dtsx" /DECRYPT password /CHECKPOINTING OFF /REPORTING EWCDI
Run Code Online (Sandbox Code Playgroud)
当我运行它时,这很好用.但是,当我设置一个sql代理作业作为"操作系统(CmdExec)"运行时,我得到以下输出.
Microsoft (R) SQL Server Execute Package Utility
Version 11.0.2100.60 for 32-bit
Copyright (C) Microsoft Corporation. All rights reserved.
Started: 13:30:44
Info: 2015-02-24 13:30:44.45
Code: 0x40016044
Source: Data Flow Task Data Flow Task (SSIS.Pipeline)
Description: Attempting to upgrade "ODBC Source". The package is attempting to upgrade an extensible object.
End Info
Error: 2015-02-24 13:30:44.59
Code: 0xC0014020
Source: SSIS002_SageCompany5Import Connection manager "Sage005.Manager" …Run Code Online (Sandbox Code Playgroud) 我有一个任务来加载格式异常的文本文件。该文件也包含不需要的数据。它包含两个连续的标头,每个标头的数据在备用行上指定。标题行从之后开始------。我需要同时读取标头及其对应的数据,并使用将其转储到某些Excel /表目标中。让我知道如何使用SSIS中的任何转换或脚本来解决此问题。不知道该如何使用脚本任务。
现在,我正在读取文件的一列,并使用派生的列手动尝试使用substring功能对其进行拆分。但这仅适用于一个标头,并且编码类型太硬。我需要一些动态方法来直接读取标题行和数据行。
输入文件:
A1234-012 I N F O R M A T I C S C O M P A N Y 08/23/17
PAGE 2 BATCH ABC PAYMENT DATE & DUE DATE EDIT PAGE 481
------------------------------------------------------------------------------------------------------------------------------------
SEO XRAT CLT LOAN OPENING PAYMENT MATURIUH LOAN NEXE ORIG-AMT OFF TO CATE CONTC MON NO.TO TOL NEL S CUP CO IND PAT
NOM CODE NOM NOMTER DATE DUO DATE DATE TIME PT # MONEY AQ LOAN NUMBER BLOCK …Run Code Online (Sandbox Code Playgroud)