ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » MS SQL Server » 用group by外加左右关联查询,大家帮忙看下有没有什么问题(可以执行)

标题: [笔记] 用group by外加左右关联查询,大家帮忙看下有没有什么问题(可以执行)
离线 terryisme
初级会员



精华贴数 0
个人空间 0
技术积分 20 (53831)
社区积分 2 (25502)
注册日期 2004-7-19
论坛徽章:0
      
      

发表于 2008-9-11 15:13 
用group by外加左右关联查询,大家帮忙看下有没有什么问题(可以执行)

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[item]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[item]
GO

CREATE TABLE [dbo].[item] (
[item_id] [int] IDENTITY (1, 1) NOT NULL ,
[org_id] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[item_number] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[item_desc] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[hs_code] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[hs_code_eng_desc] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[hs_code_chs_desc] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO 15:01
****************************************************

CREATE TABLE [dbo].[item_wip] (
[wip_id] [int] IDENTITY (1, 1) NOT NULL ,
[org_id] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[tran_date] [datetime] NOT NULL ,
[tran_type] [varchar] (80) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[assembly_item] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[issued_item] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[item_type] [varchar] (80) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[job] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[job_status] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[issue_qty] [numeric](18, 6) NOT NULL ,
[returns_qty] [numeric](18, 6) NOT NULL ,
[completion_qty] [numeric](18, 6) NOT NULL ,
[scrap_qty] [numeric](18, 6) NOT NULL ,
[uom] [varchar] (4) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[si] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[bonded] [char] (1) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[b_rm_in_fg] [numeric](18, 6) NOT NULL ,
[nb_rm_in_fg] [numeric](18, 6) NOT NULL
) ON [PRIMARY]
GO
select
issued_item,
item.item_desc
,item.hs_code
,item.hs_code_eng_desc,
Bonded_issue = sum(
  case bonded
    when 'B' then issue_qty
  end
),
Bonded_returns = sum(
  case bonded
    when 'B' then returns_qty
  end
),
Bonded_scrap = sum(
  case bonded
    when 'B' then scrap_qty
  end
),

Nobonded_issue = sum(
  case bonded
    when 'N' then issue_qty
  end
),
Nobonded_returns = sum(
  case bonded
    when 'N' then returns_qty
  end
),
Nobonded_scrap = sum(
  case bonded
    when 'N' then scrap_qty
  end
),

Total_issue = sum(issue_qty),
Total_returns = sum(returns_qty),
Total_scrap = sum(scrap_qty),
Bonded_percent =sum(
  case bonded
    when 'B' then issue_qty
  end
)/sum(issue_qty),
NonBonded_percent =sum(
  case bonded
    when 'N' then issue_qty
  end
)/sum(issue_qty)


from item_wip ,item

where item.item_number=item_wip.issued_item
group by issued_item,item.hs_code
,item.item_desc
,item.hs_code_eng_desc
,item.hs_code
WITH ROLLUP


只看该作者    顶部
离线 terryisme
初级会员



精华贴数 0
个人空间 0
技术积分 20 (53831)
社区积分 2 (25502)
注册日期 2004-7-19
论坛徽章:0
      
      

发表于 2008-9-11 15:14 
回复 #1 terryisme 的帖子

因为只是按照书上写的,没有考虑这样写能不能行的通
在sql scrip下可以运行


只看该作者    顶部
离线 terryisme
初级会员



精华贴数 0
个人空间 0
技术积分 20 (53831)
社区积分 2 (25502)
注册日期 2004-7-19
论坛徽章:0
      
      

发表于 2008-9-11 15:15 
希望大家可以帮忙一下,多发表一下意见

:)


只看该作者    顶部
离线 terryisme
初级会员



精华贴数 0
个人空间 0
技术积分 20 (53831)
社区积分 2 (25502)
注册日期 2004-7-19
论坛徽章:0
      
      

发表于 2008-9-11 15:28 
这上面好象还用到了交叉表的吧




只看该作者    顶部
离线 terryisme
初级会员



精华贴数 0
个人空间 0
技术积分 20 (53831)
社区积分 2 (25502)
注册日期 2004-7-19
论坛徽章:0
      
      

发表于 2008-9-11 19:30 
这个东东使用嵌套查询应该更合适一些

个人意见,仅供参考


只看该作者    顶部
离线 wollaston
学习、宣传DotNet


精华贴数 6
个人空间 0
技术积分 14733 (77)
社区积分 1223 (870)
注册日期 2003-5-27
论坛徽章:32
现任管理团队成员生肖徽章2007版:牛生肖徽章2007版:虎生肖徽章:猴  
      

发表于 2008-9-12 10:39 
你的目的 需求?

讨论什么内容呢?


__________________
我该学些什么呢!

抽空来发贴

仁者安仁,知者利仁。
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问