SQL语句高手帮忙看看怎么解决? 200分在线等! ( 积分: 200 )

  • 主题发起人 主题发起人 yuanlaqin
  • 开始时间 开始时间
Y

yuanlaqin

Unregistered / Unconfirmed
GUEST, unregistred user!
原始记录表<br>日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;班次&nbsp;&nbsp;&nbsp;&nbsp;车号&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;铲子编号&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;卸载点&nbsp;&nbsp;&nbsp;&nbsp;铲子位置&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;吨数&nbsp;<br>2006-1-5&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;901&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上部&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100<br>2006-1-5&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;901&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上部&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;200<br>2006-1-5&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;901&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下部&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;500<br>2006-1-5&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;902&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上部&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;300<br>2006-1-5&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;903&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上部&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;200<br>2006-1-5&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;903&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下部&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;600&nbsp;&nbsp;<br><br>期望的结果<br>日期&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;班次&nbsp;&nbsp;&nbsp;&nbsp;铲子编号&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;卸载点合计&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位置合计&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3#&nbsp;&nbsp;&nbsp;&nbsp;4#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;上部&nbsp;&nbsp;下部<br>2006-1-5&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;100&nbsp;&nbsp;&nbsp;&nbsp;300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;400&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0<br>2006-1-5&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;200&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;200&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;<br>2006-1-5&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;600&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;600<br>2006-1-5&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;500&nbsp;&nbsp;&nbsp;&nbsp;200&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;200&nbsp;&nbsp;&nbsp;&nbsp;500<br><br>哪位高人请指教!Access&nbsp;数据库
 
用临时表来处理.
 
SELECT&nbsp;<br>日期,班次,铲子编号,<br>sum(iif&nbsp;(卸载点&nbsp;=&nbsp;'3#',&nbsp;吨数,&nbsp;0))&nbsp;as&nbsp;'3#',<br>sum(iif&nbsp;(卸载点&nbsp;=&nbsp;'4#',&nbsp;吨数,&nbsp;0))&nbsp;as&nbsp;'4#',<br>sum(iif&nbsp;(铲子位置&nbsp;=&nbsp;'上部',&nbsp;吨数,&nbsp;0))&nbsp;as&nbsp;'上部',<br>sum(iif&nbsp;(铲子位置&nbsp;=&nbsp;'下部',&nbsp;吨数,&nbsp;0))&nbsp;as&nbsp;'下部'<br>from&nbsp;原始记录表&nbsp;group&nbsp;by&nbsp;日期,班次,铲子编号;
 
select&nbsp;日期,班次,车号,吨数&nbsp;as&nbsp;卸载点合计3#<br>INTO&nbsp;#卸载点1<br>FROM&nbsp;原始记录表<br>where&nbsp;铲子编号='3'<br><br>select&nbsp;日期,班次,车号,吨数&nbsp;as&nbsp;卸载点合计4#<br>INTO&nbsp;#卸载点2<br>FROM&nbsp;原始记录表<br>where&nbsp;铲子编号='4'<br><br>select&nbsp;日期,班次,车号,吨数&nbsp;as&nbsp;位置合计上部<br>INTO&nbsp;#卸载点3<br>FROM&nbsp;原始记录表<br>where&nbsp;铲子位置='上部'<br><br>select&nbsp;日期,班次,车号,吨数&nbsp;as&nbsp;位置合计下部<br>INTO&nbsp;#卸载点4<br>FROM&nbsp;原始记录表<br>where&nbsp;铲子位置='下部'<br><br><br>select&nbsp;日期,班次,车号,卸载点合计3#,'','',''&nbsp;from&nbsp;#卸载点1<br>UNION<br>select&nbsp;日期,班次,车号,'',卸载点合计3#,'',''&nbsp;from&nbsp;#卸载点2<br>UNION<br>select&nbsp;日期,班次,车号,'','',位置合计上部,''&nbsp;from&nbsp;#卸载点3<br>UNION<br>select&nbsp;日期,班次,车号,'','',,''位置合计下部&nbsp;from&nbsp;#卸载点4
 
select&nbsp;日期,班次,车号,吨数&nbsp;as&nbsp;卸载点合计3#<br>INTO&nbsp;#卸载点1<br>FROM&nbsp;原始记录表<br>where&nbsp;铲子编号='3'<br>group&nbsp;by&nbsp;铲子编号<br><br>select&nbsp;日期,班次,车号,吨数&nbsp;as&nbsp;卸载点合计4#<br>INTO&nbsp;#卸载点2<br>FROM&nbsp;原始记录表<br>where&nbsp;铲子编号='4'<br>group&nbsp;by&nbsp;铲子编号<br><br>select&nbsp;日期,班次,车号,吨数&nbsp;as&nbsp;位置合计上部<br>INTO&nbsp;#卸载点3<br>FROM&nbsp;原始记录表<br>where&nbsp;铲子位置='上部'<br>group&nbsp;by&nbsp;铲子位置<br><br>select&nbsp;日期,班次,车号,吨数&nbsp;as&nbsp;位置合计下部<br>INTO&nbsp;#卸载点4<br>FROM&nbsp;原始记录表<br>where&nbsp;铲子位置='下部'<br>group&nbsp;by&nbsp;铲子位置<br><br>select&nbsp;日期,班次,车号,卸载点合计3#,'','',''&nbsp;from&nbsp;#卸载点1<br>UNION<br>select&nbsp;日期,班次,车号,'',卸载点合计3#,'',''&nbsp;from&nbsp;#卸载点2<br>UNION<br>select&nbsp;日期,班次,车号,'','',位置合计上部,''&nbsp;from&nbsp;#卸载点3<br>UNION<br>select&nbsp;日期,班次,车号,'','',,''位置合计下部&nbsp;from&nbsp;#卸载点4
 
这涉及到字符串聚合,单靠sql不行。<br>www.x-sql.net上的xreport/xgrid支持字符串聚合
 
這樣只有才用臨時數據了。或是用連接查詢。
 
谢谢诸位,不过我的数据库是access的,上面的语句都能运行吗?
 
SELECT&nbsp;日期,班次,铲子编号,<br>sum(case&nbsp;卸载点&nbsp;when&nbsp;'3#'then&nbsp;吨数&nbsp;else&nbsp;0&nbsp;end)&nbsp;as&nbsp;'3#',<br>sum(case&nbsp;卸载点&nbsp;when&nbsp;'4#'then&nbsp;吨数&nbsp;else&nbsp;0&nbsp;end)&nbsp;as&nbsp;'4#',<br>sum(case&nbsp;铲子位置&nbsp;when&nbsp;'上部'&nbsp;then&nbsp;吨数&nbsp;else&nbsp;0&nbsp;end)&nbsp;as&nbsp;'上部',<br>sum(case&nbsp;铲子位置&nbsp;when&nbsp;'下部'&nbsp;then&nbsp;吨数&nbsp;else&nbsp;0&nbsp;end)&nbsp;as&nbsp;'下部'<br>from&nbsp;原始记录表&nbsp;group&nbsp;by&nbsp;铲子编号,日期,班次
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
843
import
I
后退
顶部