我目前是一名医疗保健分析师.过去几年我一直在使用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) 我在执行查询时遇到以下错误消息.一位成员建议我检查子查询中的别名.我做了,他们似乎排队.
你们能提供一些见解吗?谢谢.
在期望条件的上下文中指定的非布尔类型的表达式,在')'附近.
Select CLINIC_ID,SUMMARY_CATGRY,ENTRY_TYPE,
SUM(case when EntryMonth = 1 and EntryYear = 2012 then [sumofentry_amount] else 0 end) [Jan12],
SUM(case when EntryMonth = 2 and EntryYear = 2012 then [sumofentry_amount] else 0 end) [Feb12],
SUM(case when EntryMonth = 3 and EntryYear = 2012 then [sumofentry_amount] else 0 end) [Mar12],
SUM(case when EntryMonth = 4 and EntryYear = 2012 then [sumofentry_amount] else 0 end) [Apr12],
SUM(case when EntryMonth = 5 and EntryYear = 2012 then [sumofentry_amount] else 0 end) [May12], …Run Code Online (Sandbox Code Playgroud)