当前位置: 代码迷 >> Sql Server >> 100分容易SQL 解决立马结帖
  详细解决方案

100分容易SQL 解决立马结帖

热度:5   发布时间:2016-04-24 09:17:18.0
100分简单SQL 解决立马结帖
现在数据库有两个表。
1:项目信息主表
包括字段:
项目号 (ProjectCode)
项目预算金额(BudgetAmount)
....等等
2: 项目预算版本表
项目号 (ProjectCode)
项目预算金额(BudgetAmount)
预算版本(BudgetVersion)(值为:2015LE1, 2015LE2, 2015LE3, 2015LE4)

项目主表有很多数据。但项目预算版本表只有几条。

项目主表
数据只列出几条数据
ProjectCode       BudgetAmount
AO150306 486250.00
AO150307 800000.00
AO150309 160000.00
AO150310 30000.00
AO150311 170000.00
AO150312 130000.00
AO150313       420000.00
AO150314 180000.00
AO150315 250000.00
AO150316        100000.00
......................................
项目预算版本数据目前只有两条:
ProjectCode BudgetAmount BudgetVersion
AO150309 5000000.00        2015LE1
AO150316 3000000.00        2015LE1

现在需求以项目主表为主,两个表关联值ProjectCode

当我选择2015LE1时,项目预算金额就以项目预算版本中项目预算金额为主。
以上面数据为例。查询出来AO150309和AO150316预算金额为5000000.00和3000000.00 ,项目其它信息以项目主表为主。


现在求解决上面问题的SQL!

谢谢






------解决思路----------------------
SELECT T1.ProjectCode,ISNULL(T2.BudgetAmount,T1.BudgetAmount)BudgetAmount
FROM 项目信息主表 T1
LEFT JOIN 项目预算版本表 T2 ON T1.ProjectCode=T2.ProjectCode AND T2.BudgetVersion='2015LE1'

------解决思路----------------------
引用:
Quote: 引用:

SELECT T1.ProjectCode,ISNULL(T2.BudgetAmount,T1.BudgetAmount)BudgetAmount
FROM 项目信息主表 T1
LEFT JOIN 项目预算版本表 T2 ON T1.ProjectCode=T2.ProjectCode AND T2.BudgetVersion='2015LE1'


为啥这样写不对?把and改成where  我之前的写些 只出现两条数据
SELECT T1.ProjectCode,ISNULL(T2.BudgetAmount,T1.BudgetAmount)BudgetAmount
FROM 项目信息主表 T1
LEFT JOIN 项目预算版本表 T2 ON T1.ProjectCode=T2.ProjectCode where  T2.BudgetVersion='2015LE1'


http://blog.csdn.net/xc008/article/details/2872310
  相关解决方案