【发布时间】:2016-05-13 11:15:15
【问题描述】:
查询 1 结果为 87 行:
SELECT
MIN(LEFT(Date_Last_Updated, 4)) AS Year_of_Transfer,
MIN(RIGHT(LEFT(Date_Last_Updated, 6), 2)) AS Month_of_Transfer,
MIN(RIGHT(LEFT(Date_Last_Updated, 8), 2)) AS Day_of_Transfer,
CRS, Loan_Code,
MIN(Date_Last_Updated) AS Min_Date_Last_Updated
FROM
dbo.Transfer_Final_Accounts_CO_SH
WHERE
(LEFT(Date_Last_Updated, 4) >= '2016')
AND (Subcategory = 'Transfer to Workout')
GROUP BY
CRS, Loan_Code
ORDER BY
Loan_Code
查询 2 结果为 3400000 行:
SELECT
Date_Last_Updated,
SUM(NPL_Amount_Last_Quarter) AS NPL_Amount_Last_Quarter,
Loan_Code,
SUM([Total_Balance_€]) AS Total_Balance,
SUM(On_Balance_Amount_Last_Quarter) AS On_Balance_Last_Q,
SUM([Off_Balance_Amount_€]) AS Off_Balance_Last_Q, CRS,
[On_Balance_Amount_€], [Off_Balance_Amount_€], [Total_Balance_€],
NPL_Amount_Last_Quarter AS NPL_Amount_Last_Q,
[NPL_Amount_€], On_Balance_Amount_Last_Quarter,
Material_Bucket, Material_Bucket_Last_Quarter
FROM
dbo.Transfer_Final_Accounts_COM_WORK
GROUP BY
CRS, Date_Last_Updated, Loan_Code, [On_Balance_Amount_€],
[Off_Balance_Amount_€], [Total_Balance_€], NPL_Amount_Last_Quarter,
[NPL_Amount_€], On_Balance_Amount_Last_Quarter, Material_Bucket,
Material_Bucket_Last_Quarter
查询3连接上面的2,结果为0行:
SELECT
dbo.Transfer_to_Workout_Total_Balances.Total_Balance,
dbo.Transfer_to_Workout_Total_Balances.On_Balance_Last_Q,
dbo.Transfer_to_Workout_Total_Balances.Off_Balance_Last_Q,
dbo.Transfer_to_Workout_Total_Balances.NPL_Amount_Last_Quarter,
dbo.Transfer_to_workout_min_dates.Year_of_Transfer,
dbo.Transfer_to_workout_min_dates.Month_of_Transfer,
dbo.Transfer_to_workout_min_dates.Day_of_Transfer,
dbo.Transfer_to_workout_min_dates.CRS AS Expr1,
dbo.Transfer_to_workout_min_dates.Loan_Code AS Expr2,
dbo.Transfer_to_workout_min_dates.Min_Date_Last_Updated,
dbo.Transfer_to_Workout_Total_Balances.[On_Balance_Amount_€],
dbo.Transfer_to_Workout_Total_Balances.[Off_Balance_Amount_€],
dbo.Transfer_to_Workout_Total_Balances.[Total_Balance_€],
dbo.Transfer_to_Workout_Total_Balances.[NPL_Amount_€],
dbo.Transfer_to_Workout_Total_Balances.NPL_Amount_Last_Q,
dbo.Transfer_to_Workout_Total_Balances.On_Balance_Amount_Last_Quarter,
dbo.Transfer_to_Workout_Total_Balances.Material_Bucket,
dbo.Transfer_to_Workout_Total_Balances.Material_Bucket_Last_Quarter
FROM
dbo.Transfer_to_workout_min_dates
INNER JOIN
dbo.Transfer_to_Workout_Total_Balances ON dbo.Transfer_to_workout_min_dates.Loan_Code = dbo.Transfer_to_Workout_Total_Balances.Loan_Code
AND dbo.Transfer_to_workout_min_dates.Min_Date_Last_Updated = dbo.Transfer_to_Workout_Total_Balances.Date_Last_Updated
连接有什么问题为什么我没有从上面得到结果?
【问题讨论】:
-
第三个查询如何“连接”前两个?这三个看起来都截然不同。
-
您的查询以哪种方式“连接”?两个查询都返回一个分组结果,而查询 3 没有
GROUP BY子句。 -
顺便说一句,您可以为表使用别名。它会更具可读性:
... FROM dbo.Transfer_to_workout_min_dates AS min_dates ...
标签: sql sql-server tsql