0

我有一个看起来像这样的表:

CREATE TABLE #C
(grpType varchar(10),
CPTCode varchar(10) NULL,
Month int NULL,
MTD money NULL,
MonthCount int NULL,
YTD money NULL,
YearCount int NULL,
Code varchar(10) NULL)

其中包含以下数据:

grpType CPTCode Month   MTD MonthCount  YTD YearCount   Code
Month   76800   5   1321.61  27       6574.54   82        76800
Month   76856   5   246.01   3        380.64    6         76856
Month   76881   5   9778.95  131          50682.59  509       76881
Month   76942   5   22467.33 190         116663.58  674       76942

然后我有这张桌子:

CREATE TABLE #Prod
(grpType varchar(10),
TotalCharges money NULL,
TotalUnits float NULL,
RVU float NULL,
Code varchar(10) NULL,
CPTCode varchar(10) NULL)

有了这些数据:

grpType TotalCharges    TotalUnits  RVU Code    CPTCode
Month   6100.00           12             0  76800   76800
Month   -475.00           -1             0  76880   76880
Month   38749.00      81             0  76881   76881
Month   54733.00      114            0  76942   76942

我需要的是我的最终数据看起来像这样:

CPTCode     MTD     TotalCharges     TotalUnits
76800       1321.61  6100.00           12
76856       246.01    NULL             NULL
76880       NULL     -475.00           -1
76881       9778.95  38749.00          81
76942       22467.33 54733.00          114

实现这一目标的最佳加入是什么?我已经尝试了左连接,但它不起作用我得到这个结果:

CPTCode MTD TotalCharges    TotalUnits
76800   1321.61   6100.00   12
76881   9778.95   38749.00  81
76942   22467.33  54733.00  114

其中排除了一些我不想要的数据。有人有什么建议吗?

谢谢

这是不起作用的查询:

 SELECT
#C.CPTCode,
#C.MTD,
#Prod.TotalCharges,
#Prod.TotalUnits
FROM  
#C
LEFT JOIN #Prod ON #C.grpType = #Prod.grpType AND #C.Code = #Prod.Code
WHERE
   (#C.CPTCode = '76800' OR #C.CPTCode = '76856' OR #C.CPTCode = '76880' OR #C.CPTCode = '76881' OR #C.CPTCode = '76942' OR #C.CPTCode = '93922')
4

2 回答 2

0

在乍得库克和互联网上的其他一些朋友的帮助下,我已经解决了这个问题。这是我们提出的最终连接,输出是完美的。

SELECT
  ISNULL(c.CPTCode, p.CPTCode) as CPTCode,
  c.MTD,
  p.TotalCharges,
  p.TotalUnits
FROM
 #C c 
  FULL OUTER JOIN #Prod p
     ON c.grpType = p.grpType AND c.CPTCode = p.CPTCode
于 2013-06-26T14:25:40.193 回答
0

看来您可以在任一表中都有一个“可选”条目。如果是这种情况,您将需要使用完全外连接。左连接仅在您保证在#Prod 表中有一个条目时才起作用,但 76856 在#Prod 中不存在,因此被排除在外。右连接也不起作用,因为 76880 在 #C 中不存在并且将被排除。

于 2013-06-25T20:33:20.667 回答