愚人不努力懒人盼巅峰 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可以消除重复字段

    评论

报告相同问题?

悬赏问题

  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛