0

实际上,我在 vb.net 使用 GridView。这是数据源中的 sql。

SELECT SE.shipperID
      , SE.sName
      , SE.consigneeID
      , SE.conName
      , SE.agentID
      , SE.aName
      , SEDetail.bolId
      , SE.masterBOLno
      , SE.coloaderBOLno
      , SE.NumOBOL
      , SE.polName
      , SE.podName
      , CONVERT(VARCHAR ,SE.onboardDate ,111)
      , SUM(SEDetail.quantity)
      , SUM(SEDetail.totalSize)
      , SUM(SEDetail.totalWeight)
  FROM SE
       INNER JOIN SEDetail ON  SE.id = SEDetail.bolId
 WHERE  SE.id = SEDetail.bolId
 GROUP BY SE.shipperID, SE.sName, SE.consigneeID, SE.conName, SE.agentID,  
       SE.aName, SE.masterBOLno, SE.coloaderBOLno, SE.NumOBOL, SEDetail.bolId, 
       SE.polName, SE.podName, SE.onboardDate

我想使用 TemplateField 添加 3 列,但 GridView 不能使用多个数据源

column 1.  count(SEDetail.containerId) (where  b.SEDetail.containerId between 1 and 5 )
column 2.  count(SEDetail.containerId) (where  b.SEDetail.containerId between 6 and 10 )
column 3.  count(SEDetail.containerId) (where  b.SEDetail.containerId = 11 )

那么,如何使用临时表或其他方式将一条语句分组。

4

1 回答 1

0

不确定您使用的是什么风格的 SQL,但您能否将以下内容添加到您的 select 语句中:

SUM(CASE WHEN b.SEDetail.containerId BETWEEN 1 AND 5
         THEN 1 ELSE 0 END) AS column1
SUM(CASE WHEN b.SEDetail.containerId BETWEEN 6 AND 10
         THEN 1 ELSE 0 END) AS column2
SUM(CASE WHEN b.SEDetail.containerId = 11
         THEN 1 ELSE 0 END) AS column3
于 2013-05-07T08:13:01.417 回答