愚人不努力懒人盼巅峰 2016-08-03 03:42 采纳率: 0%
浏览 5474
已结题

sql怎么实现:某一列的相同的情况就只显示一行,其他列照常显示?

比如:
id count

1111 2222

3333 4444

5555 6666

我的sql:
CREATE VIEW dbo.View_select2
AS
SELECT e.planID,e.PlanCode, CASE WHEN c.smzt1 = 1 AND
c.smzt1date IS NOT NULL AND smzt1date <> '' THEN '已结束声明' WHEN c.smzt1 IS NULL OR
smzt1 = '' THEN '检查中' END AS [SMZT1], CASE WHEN b.taskid IN
(SELECT taskid
FROM firstchecktbl) THEN
(SELECT taskcode
FROM firstchecktbl
WHERE taskid = b.taskid) WHEN b.taskid IN
(SELECT taskid
FROM tasktbl) THEN
(SELECT taskcode
FROM tasktbl
WHERE taskid = b.taskid) END taskcode, a.factorycode AS factorycode, a.factoryname AS factoryname, d .levelmanage AS levelmanage, a.sqfpdwdz AS sqfpdwdz,
a.qfrq AS qfrq,
/*-检查日期以收费单签发日期代替,*/ (SELECT innerusername
FROM (SELECT taskid, innerusername = stuff
((SELECT ',' + isnull(innerusername, '')
FROM t_auditor
WHERE taskid = t .taskid AND groupleader_yn = 'yes' FOR xml path('')), 1, 1, '')
FROM t_auditor t
GROUP BY taskid) b
WHERE b.taskid = c.planid) AS innerusernameZZ,
(SELECT innerusername
FROM (SELECT taskid, innerusername = stuff
((SELECT ',' + isnull(innerusername, '')
FROM t_auditor
WHERE taskid = t .taskid AND groupleader_yn = 'no' FOR xml path('')), 1, 1, '')
FROM t_auditor t
GROUP BY taskid) b
WHERE b.taskid = c.planid) AS innerusernameZY, a.sqfpdwmc AS sqfpdwmc, /*-收取发票单位名称*/ a.sqfprxm AS sqfprxm, a.sqfprdh AS sqfprdh, a.jcf AS jcf,
a.nj AS nj, CONVERT(int, jcf) + CONVERT(int, nj) AS total, a.memo AS memo, e.yszkqr AS yszkqr
FROM t_costinfo a, t_costinfotask b, t_checkinfo c,
(SELECT fcodea, levelmanage
FROM t_factory
WHERE fcodea IS NOT NULL
UNION
SELECT fcodev, levelmanage
FROM t_factory
WHERE fcodev IS NOT NULL) d, PlanTbl e
WHERE a.costid = b.costid AND b.taskid = c.taskid AND a.factorycode = d .fcodea AND c.PlanID = e.PlanID
UNION
SELECT z.planid,z.planid, CASE WHEN z.smzt1 = 1 AND z.smzt1date IS NOT NULL AND smzt1date <> '' THEN '已结束声明' WHEN z.smzt1 IS NULL OR
smzt1 = '' THEN '检查中' END AS [SMZT1], z.taskcode AS taskcode, substring(z.taskcode, 6, 7) AS factorycode, CASE checktype WHEN 1 THEN
(SELECT factoryname
FROM firstchecktbl
WHERE taskid = z.taskid) WHEN 2 THEN
(SELECT factoryname
FROM plantbl
WHERE planid = z.planid) END factoryname, CASE WHEN substring(z.taskcode, 6, 1) = 'A' THEN
(SELECT max(levelmanage)
FROM t_factory
WHERE fcodea IS NOT NULL AND fcodea <> '' AND fcodea = substring(z.taskcode, 6, 7)) WHEN substring(z.taskcode, 6, 1) = 'V' THEN
(SELECT max(levelmanage)
FROM t_factory
WHERE fcodev IS NOT NULL AND fcodev <> '' AND fcodev = substring(z.taskcode, 6, 7)) END levelmanage, NULL, NULL,
(SELECT innerusername
FROM (SELECT taskid, innerusername = stuff
((SELECT ',' + isnull(innerusername, '')
FROM t_auditor
WHERE taskid = t .taskid AND groupleader_yn = 'yes' FOR xml path('')), 1, 1, '')
FROM t_auditor t
GROUP BY taskid) y
WHERE y.taskid = z.planid) asinnerusernameZZ,
(SELECT innerusername
FROM (SELECT taskid, innerusername = stuff
((SELECT ',' + isnull(innerusername, '')
FROM t_auditor
WHERE taskid = t .taskid AND groupleader_yn = 'no' FOR xml path('')), 1, 1, '')
FROM t_auditor t
GROUP BY taskid) x
WHERE x.taskid = z.planid) AS innerusernameZY, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
FROM t_checkinfo z
WHERE taskid NOT IN
(SELECT taskid
FROM t_costinfotask)

我要实现的效果就是:如果plancode重复就只显示一行,然后其他列正常显示。
求解。

  • 写回答

9条回答 默认 最新

  • Jeaforea 2016-08-03 03:49
    关注

    是两条元组所有字段都一样吗,如果只是消除要查询的字段重复的话,group by可以消除重复字段

    评论

报告相同问题?

悬赏问题

  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面
  • ¥15 算法题:数的划分,用记忆化DFS做WA求调
  • ¥15 chatglm-6b应用到django项目中,模型加载失败
  • ¥15 武汉岩海低应变分析软件,导数据库里不显示波形图
  • ¥15 CreateBitmapFromWicBitmap内存释放问题。
  • ¥30 win c++ socket
  • ¥30 CanMv K210开发板实现功能
  • ¥15 C# datagridview 栏位进度
  • ¥15 vue3页面el-table页面数据过多
  • ¥100 vue3中融入gRPC-web