【发布时间】:2012-01-03 08:42:10
【问题描述】:
我需要删除两行中值为“0”的列
select DateString as 'Date',machine,
sum (case when vfrm.job_id = '105' then (total_hours) else '0' end)as A,
sum (case when vfrm.job_id = '100' then (total_hours) else '0' end) as B,
sum (case when vfrm.job_id = '101' then (total_hours) else '0' end) as C,
sum (case when vfrm.job_id = '102' then (total_hours) else '0' end) as D,
sum (case when vfrm.job_id = '103' then (total_hours) else '0' end) as E,
sum (case when vfrm.job_id = '134' then (total_hours) else '0' end) as F,
sum (case when vfrm.job_id = '135' then (total_hours) else '0' end) as G ,
sum (case when vfrm.job_id = '9995' then (total_hours) else '0' end) as OTHERS
from ven_fullreportmaster vfrm
INNER JOIN ven_descriptionmaster VDM ON VDM.description_id = vfrm..description_id
inner join ven_machinemaster vm on vm.machine_id = vfrm..machine_id
inner join ven_jobcodemaster vjm on vjm.job_id = vfrm.job_id
inner join Dim_Time dt on dt.Date_Id = vfrm.date_id
where vfrm.entry_date = '20111208'
and vfrm.shift_id =2
and vfrm.description_id in (1,3,5)
and vfrm.job_id not in (9999,9998,9996,9994)
and vjm.job_status ='ACTIVE'
group by description_name, DateString
输出:
请帮我解决这个问题..
问候
T.纳文
更新:
我正在将上面的 sql 查询结果保存到 c# 中的数据集中.. 是否可以过滤在两行中都包含“0”的列..以便数据集看起来像快照中所需的输出
【问题讨论】:
-
没有简单的方法可以做到这一点。您必须将查询的结果存储在临时表中,然后使用临时表针对它构建动态查询,仅包括所有行中不包含 0 的列。使用结果集中的动态列数,您必须动态构建查询。也许这在某些客户端代码中更容易做到?
-
@MikaelEriksson:thanx ..我会尝试动态地做到这一点..我将输出存储在 c# 的数据集中,是否可以像在数据集中所需的输出一样过滤数据集中的列快照
-
我没有足够的 C# 知识来回答这个问题。我确信有一些方法可以在演示文稿中隐藏列。如果最好在数据集或某些 GUI 组件中完成,我不知道。
标签: c# sql sql-server sql-server-2005 dataset