先有 一个 A表的 数据
codeCD 有 24位 和 14位 的 对于24位的CD 一个24位codecd包含的 所有商品 是 放在一个箱子里
对于 每个14位的codecd 对应的商品 的箱数计算方法是 订货数除一箱商品个数
flag1 0:代表未送货 1:代表已经送货
flag2 0:代表不验货 1:代表 要抽样验货 供货商号 CodeCD 商品CD 一箱商品个数 订货数 Flag1 Flag2
0314 001473000900200138947810 1234 3 2 0 0
0314 001473000900200138947810 1235 4 3 0 0
0314 14973735126211 1234 2 10 0 0
0314 14955249200397 1567 8 16 0 0
0314 001473002900200138947813 9876 2 1 0 1
0314 001473002900200138947813 4566 6 2 0 1
0314 001473002900200138947813 766 12 4 0 1
0314 001473002900200138947813 876 60 10 0 1
0314 24976881244751 asd 4 8 1 0
0314 14973766000948 854 6 18 1 0
0314 14973766000894 987R 1 3 1 1
0314 001473023800200138947799 876d 6 3 1 0
0314 001473023800200138947799 as6d 2 1 1 0
0314 001473023800200138947799 oi6d 2 2 1 0
0314 001473023800200138947797 poiu 10 5 1 1 我想 统计 这个 供货商 应该送多少箱商品 要区分未送货 和送货完了
其中 对于未送货的部分 不用区分 CodeCD长度和 flag2 直接统计箱数 就行
对于 送货完了的部分 要根据CodeCD 和 Flag2 来分别统计 箱数 ?????
有点复杂 求 Sql 语句??
怎么分组?
上面求出 结果 应该是
供应商 箱数 送货状态
0314 1+5+2+1 未送货
0314 2+3 送货完了 code14位 不检品
0314 3 送货完了 code14位 检品
0314 1 送货完了 code24位 不检品
0314 1 送货完了 code24位 检品sql
codeCD 有 24位 和 14位 的 对于24位的CD 一个24位codecd包含的 所有商品 是 放在一个箱子里
对于 每个14位的codecd 对应的商品 的箱数计算方法是 订货数除一箱商品个数
flag1 0:代表未送货 1:代表已经送货
flag2 0:代表不验货 1:代表 要抽样验货 供货商号 CodeCD 商品CD 一箱商品个数 订货数 Flag1 Flag2
0314 001473000900200138947810 1234 3 2 0 0
0314 001473000900200138947810 1235 4 3 0 0
0314 14973735126211 1234 2 10 0 0
0314 14955249200397 1567 8 16 0 0
0314 001473002900200138947813 9876 2 1 0 1
0314 001473002900200138947813 4566 6 2 0 1
0314 001473002900200138947813 766 12 4 0 1
0314 001473002900200138947813 876 60 10 0 1
0314 24976881244751 asd 4 8 1 0
0314 14973766000948 854 6 18 1 0
0314 14973766000894 987R 1 3 1 1
0314 001473023800200138947799 876d 6 3 1 0
0314 001473023800200138947799 as6d 2 1 1 0
0314 001473023800200138947799 oi6d 2 2 1 0
0314 001473023800200138947797 poiu 10 5 1 1 我想 统计 这个 供货商 应该送多少箱商品 要区分未送货 和送货完了
其中 对于未送货的部分 不用区分 CodeCD长度和 flag2 直接统计箱数 就行
对于 送货完了的部分 要根据CodeCD 和 Flag2 来分别统计 箱数 ?????
有点复杂 求 Sql 语句??
怎么分组?
上面求出 结果 应该是
供应商 箱数 送货状态
0314 1+5+2+1 未送货
0314 2+3 送货完了 code14位 不检品
0314 3 送货完了 code14位 检品
0314 1 送货完了 code24位 不检品
0314 1 送货完了 code24位 检品sql
供货商号,
sum(case when Flag1=0 then 1 else 0 end) as '未送货',
sum(case when flag1=1 and flag2=0 and len(CodeCD)=14 then 订货数/一箱商品个数 else 0 end) as '送货完了 code14位 不检品'
...
from
tb
group by
供货商号
对于未送货的 codeCD 是24 位的 相同的CD 是按一箱 计算 codeCD 是14位的 是 订货数除一箱个数 然后 求 加和 的 ? 这个没有 计算对吧??
24的话 条件就是len(CodeCD)=24 then 一箱商品个数
+
sum(case when Flag1=0 and len(CodeCD)=24 then 一箱商品个数 else 0 end)就不写了 关键是知道怎么实现的 以后这样的问题就不用问了
对于 COde24位cd 一个cODECD 24位的 会有复数条数据 这样 会计算为 一箱
对于 codeCD 14 位的 按 订货数 除 一箱商品个数 得出一个箱数
然后 这两个数 相加 就是 这个供货商 对于未送货的 商品的 箱数 ??
求sql??
先 谢谢了