内查询的问题,请大家帮看看这个结果的SQL如何写

LYSSHE 2005-11-04 09:55:12
结构如下:
------------------------------------
港口 记录日期 货物种类 装卸 货量 到港日期
BEIHAI 2005-10-28 10:45:16.467 化工类 L 2344.0 2005-01-01 00:00:00.000
BEIHAI 2005-10-28 10:45:48.607 化工类 D 63.0 2005-12-01 00:00:00.000
BEIHAI 2005-10-28 15:25:40.000 化工类 L 20.0 2005-01-01 00:00:00.000
BEIHAI 2005-10-28 10:46:44.140 化工类 L 21.0 2005-02-03 00:00:00.000
BEIHAI 2005-10-28 10:48:04.653 钢材类 L 212.0 2005-10-01 00:00:00.000
BEIHAI 2005-10-28 10:48:28.640 化工类 L 215.0 2005-06-05 00:00:00.000
FANGCHENG 2005-10-28 15:00:05.000 化工类 L 3444.0 2005-02-02 00:00:00.000
FANGCHENG 2005-10-28 15:05:13.983 化工类 L 35345.0 2005-10-01 00:00:00.000
FANGCHENG 2005-10-28 15:06:38.530 钢材类 L 3345.0 2005-12-01 00:00:00.000
BEIHAI 2005-10-28 11:20:43.717 矿类 L 34535.0 2005-02-04 00:00:00.000
BEIHAI 2005-10-28 11:21:22.937 其它 L 34.0 2005-06-07 00:00:00.000
FANGCHENG 2005-10-28 15:08:06.280 化工类 L 345345.0 2005-04-05 00:00:00.000

---------
在使用如下语句统计出来的结果
select 港口,货物种类,count(港口) as 总航次,sum(货量) as 总货量 from lineUP as t1 group by 港口,货物种类 order by 港口

港口 货物种类 总航次 总货量
------------------------------------
BEIHAI 钢材类 1 212.0
BEIHAI 化工类 5 2663.0
BEIHAI 矿类 1 34535.0
BEIHAI 其它 1 34.0
FANGCHENG 钢材类 1 3345.0
FANGCHENG 化工类 3 384134.0

在这个统计果的基础上我想再加上两个计算列,结果如下:

港口 货物种类 总航次 总货量 总装货量 总卸货量
---------------------------------------------------------------
BEIHAI 钢材类 1 212.0 ?? ??
BEIHAI 化工类 5 2663.0 ?? ??
BEIHAI 矿类 1 34535.0 ?? ??
BEIHAI 其它 1 34.0 ?? ??
FANGCHENG 钢材类 1 3345.0 ?? ??
FANGCHENG 化工类 3 384134.0 ?? ??
--------------------------------------------------------


原表的 装卸 字段值中 D 是卸,L是装的意思。
总货量应该等于 装与卸货 的总量。
不知道这样表达清楚没有?
能不能使用内查询实现这个的结果?请大家帮帮。
...全文
130 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
LYSSHE 2005-11-07
  • 打赏
  • 举报
回复
呵....
这里人高手还是真多。
一下子就解决问题了。
谢谢,谢谢各位关心。
kimurakenshin 2005-11-04
  • 打赏
  • 举报
回复
up
samfeng_2003 2005-11-04
  • 打赏
  • 举报
回复
select 港口,货物种类,count(港口) as 总航次,sum(货量) as 总货量,
总装货量=sum(case when 装卸='L' then 数量 end),总卸货量=sum(case when 装卸='D' then 数量 end) from lineUP as t1 group by 港口,货物种类 order by 港口
LYSSHE 2005-11-04
  • 打赏
  • 举报
回复
原表结构重新整了一下可能好看一点。如下:

港口 记录日期 货物种类 装卸 货量 到港日期
-------------------------------------------------------------------
BEIHAI 2005-10-28 化工类 L 2344.0 2005-01-01
BEIHAI 2005-10-28 化工类 D 63.0 2005-12-01
BEIHAI 2005-10-28 化工类 L 20.0 2005-01-01
BEIHAI 2005-10-28 化工类 L 21.0 2005-02-03
BEIHAI 2005-10-28 钢材类 L 212.0 2005-10-01
BEIHAI 2005-10-28 化工类 L 215.0 2005-06-05
FANGCHENG 2005-10-28 化工类 L 3444.0 2005-02-02
FANGCHENG 2005-10-28 化工类 L 35345.0 2005-10-01
FANGCHENG 2005-10-28 钢材类 L 3345.0 2005-12-01
BEIHAI 2005-10-28 矿类 L 34535.0 2005-02-04
BEIHAI 2005-10-28 其它 L 34.0 2005-06-07
FANGCHENG 2005-10-28 化工类 L 345345.0 2005-04-05
QQMagicer 2005-11-04
  • 打赏
  • 举报
回复
select 港口,货物种类,count(港口) as 总航次,sum(货量) as 总货量
sum(case when 装卸 = 'L' then 货量 else 0 end) as 总装货量,
sum(case when 装卸 = 'D' then 货量 else 0 end) as 总卸载量
from lineUP as t1 group by 港口,货物种类 order by 港口
QQMagicer 2005-11-04
  • 打赏
  • 举报
回复
select 港口,货物种类,count(港口) as 总航次,sum(货量) as 总货量
sum(case when 装卸 = 'L' then 货量 else 0) as 总装货量,
sum(case when 装卸 = 'D' then 货量 else 0) as 总卸载量
from lineUP as t1 group by 港口,货物种类 order by 港口
vivianfdlpw 2005-11-04
  • 打赏
  • 举报
回复
0写成o了:

select 港口
,货物种类
,count(港口) as 总航次
,sum(货量) as 总货量
,sum(case when 装卸='L' then 货量 else 0 end) as '总装货量'
,sum(case when 装卸='D' then 货量 else 0 end) as '总卸货量'
from lineUP as t1
group by 港口
,货物种类
order by 港口
vivianfdlpw 2005-11-04
  • 打赏
  • 举报
回复
select 港口
,货物种类
,count(港口) as 总航次
,sum(货量) as 总货量
,sum(case when 装卸='L' then 货量 else o end) as '总装货量'
,sum(case when 装卸='D' then 货量 else o end) as '总卸货量'
from lineUP as t1
group by 港口
,货物种类
order by 港口

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧