SQL Server查询某些特定条件(SQL Server Query some specific

2019-10-19 05:20发布

SELECT distinct t1.vssyspackageid,CA.rAmount as Amount,Curr.vsShortCode AS Currency       


 from tblPrograms         
   INNER JOIN tblProgramsAndPackages ON tblPrograms.vsSysProgramId = tblProgramsAndPackages.vsSysProgramId         
   inner join tblPackages t1 on tblProgramsAndPackages.iPackageId=t1.iPackageId        
  right join tblPkgContractAwardDetails as CA on CA.iPackageId=t1.iPackageId  
   join tblCurrencies as Curr on CA.iCurrency =Curr.iCurrencyId    


   where tblPrograms.vsSysProgramId='JICA'        
  group by t1.vssyspackageid,CA.rAmount,Curr.vsShortCode

如果其分配给承建商奖详细信息包,那么它会显示在一列。

例如:GWSSP / 01,GWSSP / 02在此之后它它示出了在下一列总包。

Answer 1:

我不知道你想要什么你的问题是有点模糊,但我猜你想指定的包,将显示金额列的总和一行。 这是我可以从你的问题理解呢!

SELECT DISTINCT t1.vssyspackageid, 
                SUM(CA.rAmount) AS TotalAmount,
                Curr.vsShortCode AS Currency       
FROM            tblPrograms         
INNER JOIN      tblProgramsAndPackages ON tblPrograms.vsSysProgramId = 
                                          tblProgramsAndPackages.vsSysProgramId         
INNER JOIN      tblPackages AS t1 ON tblProgramsAndPackages.iPackageId = 
                                     t1.iPackageId        
RIGHT JOIN      tblPkgContractAwardDetails AS CA ON CA.iPackageId = 
                                                    t1.iPackageId  
JOIN            tblCurrencies AS Curr ON CA.iCurrency = 
                                         Curr.iCurrencyId    
WHERE           tblPrograms.vsSysProgramId = 'JICA' 
     AND        t1.[YOUR_COLUMN_NAME_HERE] = 'GWSSP/01'
GROUP BY        t1.vssyspackageid,
                Curr.vsShortCode

短短几件事情要注意:

  1. 我不知道在列名tblPackages是诸如“GWSSP / 01”的值属于表,所以我离开了你来填写。
  2. 你仍然会得到多个行,如果有您的包裹多种货币,你将不得不删除Curr.vsShortCode从您的选择和GROUP BY子句,如果是这样的话。
  3. 我也渡过了你的代码一点,因为它是相当混乱,很难理解,以及使用多种标准和捷径!


文章来源: SQL Server Query some specific condition