Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 SQL Server查询某些特定条件_Sql Server 2008 - Fatal编程技术网

Sql server 2008 SQL Server查询某些特定条件

Sql server 2008 SQL Server查询某些特定条件,sql-server-2008,Sql Server 2008,如果指定给承包商的合同包的详细信息将显示在一列中 示例:GWSSP/01、GWSSP/02,然后在下一列中显示总包裹。我不确定您到底想要什么,因为您的问题有点模糊,但我猜您希望指定包裹中有一行显示金额列的总和。这就是我从你的问题中所能理解的 SELECT distinct t1.vssyspackageid,CA.rAmount as Amount,Curr.vsShortCode AS Currency from tblPrograms INNER

如果指定给承包商的合同包的详细信息将显示在一列中


示例:GWSSP/01、GWSSP/02,然后在下一列中显示总包裹。

我不确定您到底想要什么,因为您的问题有点模糊,但我猜您希望指定包裹中有一行显示金额列的总和。这就是我从你的问题中所能理解的

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
只需注意以下几点:

  • 我不知道“gwsp/01”等值所属的
    tblPackages
    表中的列名,因此我将其留给您填写
  • 如果您的包裹有多种货币,您仍将获得多行。如果是这种情况,您必须从Select和Group By子句中删除
    Curr.vsShortCode
  • 我还整理了一下您的代码,因为它非常混乱,难以理解,并且使用了多种标准和快捷方式
    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