易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL语句

主表
单号 日期
001 2009-01-01
002 2009-01-02
001J1 2009-01-03
001J2 2009-01-03
002J1 2009-01-03
002J2 2009-01-08
002J3 2009-01-09
明细表
单号 货物名称
001 大米
001 萝卜
002 香菇
002 黄豆
001J1 面条
001J1 白菜
001J2 白菜
001J2 橙
002J1 白菜
002J1 橙
002J2 大米 
002J3 香菇

说明: 带J的单号表示是补货即补货单号(如原001单中货物不够,需要补充货物的话,则补充货物的单号是
001J1,J1表示第一次补货,J2表示第二次补货,Jn表示第n次补货).
求SQL语句:每张原单号即不带J的单号共补白菜的次数(补单明细表中如果有白菜,就算是补白菜,否则算是
补其他货物)和补其他货物的次数,实现这些功能的代码如何写?
SQL code:
SELECT A.单号,
SUM(CASE WHEN C.货物名称 = '白菜' THEN 1 ELSE 0 END) AS 补白菜数,
SUM(CASE WHEN C.货物名称 = '白菜' THEN 0 ELSE 1 END) AS 补其他货物数
from 主表 AS A
JOIN 主表 AS B
ON B.单号 LIKE A.单号 + '_%'
AND A.单号 NOT LIKE '%J%' AND LEN(A.单号) = 3
JOIN 明细表 AS C
ON B.单号 = C.单号
GROUP BY A.单号;


SQL code:

--> 测试数据: 主表
if object_id('主表') is not null drop table 主表
create table 主表 (单号 varchar(


相关问答:

求一sql语句 - MS-SQL Server / 疑难问题

现在有两张表:文章主表A(articleId,articleTitle),文章评论表B(commentId,articleId,commentTitle)
现在我想实现这样的功能:列出文章列表,其中每篇文章标题下面列出此文章的前2个文章评论,请问sql语句怎么写啊 ......

sql - MS-SQL Server / 疑难问题

sql的软件在哪里可以下啊!在网上找了蛮多都用不了啊

随便搞一D版吧,

迅雷第一个就可以用
2000,2005都这样

http://119.147.41.16/down?cid=0698C2D64D7D637D90A6D2482298E6717D4F15CD&t=2&fmt=-1 ......

MS SQL作业问题 - MS-SQL Server / 应用实例

如何在SQL2005中设定定时作业,比如说定时清理某些表的数据,
或者是定时的将某些表的数据导出excel!
在线等待,急急急,最好是详细步骤!
之前我做的作业有点问题!
帮UP

参考:http://hi.baidu.com/toiota ......

如何使用MySQL - MS-SQL Server / 基础类

刚刚接触MySQL,不知道该如何去查看数据,插入数据,创建数据库、表,用哪为前辈能指教一二?

MySQL 5.1参考手册

引用
兄弟你会结贴吗?
mysql 参考手册

baidu

MySQL官方文档 http://dev.mysql.com/doc ......

两句SQL并一句,有问题. - MS-SQL Server / 基础类

第一句:
select ht.gfdm,gfdm.gfmc,gfdm.lb ,sum(jh.htdj*jh.htsl)as je
from ht left join gfdm on ht.gfdm=gfdm.gfdm 
 join jh on ht.htbh=jh.hth 
and ht.htbh not like'del%' and ht. ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号