水平列出mysql行值,不进行透视



在我的表中,我有以下列

--loannumber--disbid--username--docs--
--------------------------------------
---1234567  -- 430  -- jhon   -- NCN --
-- same   ---- 425  -- sam    -- NPC --
-- same     -- 455  -- clin   -- Mis --
-- 4567891  -- 666  -- some1  -- NCN --
-- same     -- 777  -- some2  -- NPC --

我还有一个自动递增的主密钥

我想做的是像这样过滤它,并在数据网格视图中显示

++ loannumber ++  NCN  ++  NPC  ++  MIS  ++
--   1234567  ++  430  ++  --   ++  --   ++
--    same    ++  --   ++  425  ++  --   ++
--    same    ++  --   ++  --   ++  455  ++

我尝试了以下sql

SELECT loannumber, 
      CASE WHEN docs='NCN'THEN 1 ELSE 0 END 'NCN',      
      CASE WHEN docs='NPC'THEN 1 ELSE 0 END 'NPC',
      CASE WHEN docs='Missing'THEN 1 ELSE 0 END 'Missing'
FROM claimloans 

但这只包括取消资格的人数。我想给他们看,而不是数数。Loannumber字段不是强制字段。我正计划编写一个存储过程,并将其称为form winforms。有人能帮帮我吗?

  ++ NCN  ++  NPC   ++  MIS ++
  ++  430  ++  --   ++  --   ++
  ++  --   ++  425  ++  --   ++
  ++  --   ++  --   ++  455  ++

(这也可以!!)

这一切都很顺利。但是我怎样才能消除空

SELECT loannumber, 
      CASE WHEN docs='NCN'THEN disblid END 'NCN',
      CASE WHEN docs='Missing'THEN disblid END 'Missing',
      CASE WHEN docs='NF'THEN disblid END 'NF'

FROM claimloans 

不确定我是否正确理解你,但试试这个:

SELECT loannumber, 
      SUM(CASE WHEN docs='NCN'THEN 1 ELSE 0 END) 'NCN',
      SUM(CASE WHEN docs='Missing'THEN 1 ELSE 0 END) 'Missing',
      SUM(CASE WHEN docs='NF'THEN 1 ELSE 0 END) 'NF'
FROM claimloans 
GROUP BY loannumber

最新更新