收录日期:2021/01/26 16:40:15 时间:2016/07/12 06:44:45 标签:疑难问题
请问各位高手,有如下表
code name  month  inquantity  inprice  outquqntity outprice 
001  a      0      10             12     
002  b      0      10             20                
003  c      0      5             10
001  a      1      20            40    
001  a      1                            3           3.6
002  b      1      2               4     
003  c      2                            2           4            
004  d      2      14             28     
004  d      3                            3            6
其中month为月份0月份 是期初
要求生成如下表
code  qcqua(数量) qcpr (金额) inquantity(入数) inpr(金额) outqu(出数) price(金额) kcqu(存数) kcpr(金额)
001      10        12          20              40          3         3.6       27          56.4
002      10        20          2               4            
003       5        10                                       2         4          3          6
004                            14              28           3          6


引用楼主 asplucky 的帖子:
请问各位高手,有如下表 
code name  month  inquantity  inprice  outquqntity outprice 
001  a      0      10            12    
002  b      0      10            20                
003  c      0      5             10 
001  a      1      20            40    
001  a      1                              3          3.6 
002  b      1      2              4    
003  c      2                            …


是在上表中对月份为0的加为期初列,然后统计入库,出库的数量与金额,每一代码在一行
同一代码在一个月内可能没有,月初数与可能没有
能不能用Tab把你的数据对齐一下,哪是哪啊?
引用 1 楼 asplucky 的回复:
引用楼主 asplucky 的帖子:
请问各位高手,有如下表 
code |name | month |  inquantity |  inprice  | outquqntity | outprice 
001  |a    |   0   |    10       |       12  |             |  
002  |b    |   0   |    10       |      20   |             |  
003  |c    |   0   |    5        |      10   |             | 
001  |a    |   1   |    20       |      40   |             |  
001  |a    |   1   |             |           |     3       |    3.6 
002  |b    |   1   |    2        |       4   |             | 
003  |c    |   …


请问各位高手,有如下表 
code | name | month | inquantity | inprice | outquqntity |outprice 
001  |a     |  0    |  10        |    12   |             | 
002  |b     | 0     |  10        |    20   |             | 
003  |c     | 0     |   5        |    10   |             |
001  |a     | 1     |  20        |    40   |             |
001  |a     | 1     |            |         |  3          | 3.6 
002  |b     | 1     |   2        |     4   |             | 
003  |c     | 2     |            |         |  2          |  4            
004  |d     | 2     |   14       |    28   |             |
004  |d     | 3     |            |         |  3          |  6 
其中month为月份,0月份即 是期初 
要求生成如下表 
code  |qcqua(数量)|qcpr(金额)|nquantity(入数)|npr(金额)|outqu(出数)|price(金额| kcqu(存数)| kcpr(金额) 
001   |   10      |  12       |  20        |    40    |  3       | 3.6     |   27      |  56.4 
002   |   10      |  20       |   2        |    4     |          |         |    12     |   24
003   |   5       |  10       |            |          |  2       |   4     |     3     |   6 
004   |           |           |  14        |     28   |  3       |   6     |    11     |   22


不好意思,第一次提问,打上去时是对齐的,发上去却变了
这是原某财务软件导出的格式,现本人重新做WEB版了,不知如何做。

declare @t table(code varchar(6),name varchar(6),month int,inquantity int,inprice money,outquqntity int,outprice money)
insert into @t select '001','a',0,10  ,12  ,null,null
insert into @t select '002','b',0,10  ,20  ,null,null
insert into @t select '003','c',0,5   ,10  ,null,null
insert into @t select '001','a',1,20  ,40  ,null,null
insert into @t select '001','a',1,null,null, 3  ,3.6 
insert into @t select '002','b',1,2   ,4   ,null,null
insert into @t select '003','c',2,null,null,2   ,4
insert into @t select '004','d',2,14  ,28  ,null,null
insert into @t select '004','d',3,null,null,3   ,6 



select
    code,
    sum(case month when 0 then inquantity else 0  end),
    sum(case month when 0 then inprice    else 0  end),
    sum(case month when 0 then 0 else inquantity  end),
    sum(case month when 0 then 0 else inprice     end),
    sum(case month when 0 then 0 else outquqntity end),
    sum(case month when 0 then 0 else outprice    end),
    sum(isnull(inquantity,0)-isnull(outquqntity,0)),
    sum(isnull(inprice,0)-isnull(outprice,0))
from
    @t
group by
    code

declare @t table(code varchar(6),name varchar(6),month int,inquantity int,inprice money,outquqntity int,outprice money)
insert into @t select '001','a',0,10  ,12  ,null,null
insert into @t select '002','b',0,10  ,20  ,null,null
insert into @t select '003','c',0,5   ,10  ,null,null
insert into @t select '001','a',1,20  ,40  ,null,null
insert into @t select '001','a',1,null,null, 3  ,3.6 
insert into @t select '002','b',1,2   ,4   ,null,null
insert into @t select '003','c',2,null,null,2   ,4
insert into @t select '004','d',2,14  ,28  ,null,null
insert into @t select '004','d',3,null,null,3   ,6 



select
    code,
    sum(case month when 0 then inquantity else 0  end) as qcqua,
    sum(case month when 0 then inprice    else 0  end) as qcpr,
    sum(case month when 0 then 0 else inquantity  end) as nquantity,
    sum(case month when 0 then 0 else inprice     end) as npr,
    sum(case month when 0 then 0 else outquqntity end) as outqu,
    sum(case month when 0 then 0 else outprice    end) as price,
    sum(isnull(inquantity,0)-isnull(outquqntity,0))    as kcqu,
    sum(isnull(inprice,0)-isnull(outprice,0))          as kcpr
from
    @t
group by
    code

/*
code   qcqua       qcpr                  nquantity   npr                   outqu       price                 kcqu        kcpr                  
------ ----------- --------------------- ----------- --------------------- ----------- --------------------- ----------- --------------------- 
001    10          12.0000               20          40.0000               3           3.6000                27          48.4000
002    10          20.0000               2           4.0000                0           .0000                 12          24.0000
003    5           10.0000               0           .0000                 2           4.0000                3           6.0000
004    0           .0000                 14          28.0000               3           6.0000                11          22.0000
*/
我顶
好乱,帮顶.
谢谢各位高手!在下铭记.
引用 5 楼 libin_ftsafe 的回复:
SQL code
declare @t table(code varchar(6),name varchar(6),month int,inquantity int,inprice money,outquqntity int,outprice money)
insert into @t select '001','a',0,10  ,12  ,null,null
insert into @t select '002','b',0,10  ,20  ,null,null
insert into @t select '003','c',0,5   ,10  ,null,null
insert into @t select '001','a',1,20  ,40  ,null,null
insert into @t select '001','a',1,null,null, 3 …

基本正确,鉴定完毕!
昨天回去用4楼的方法试了下,并与实际表加以改动,现已解决,多谢.

有关细化的问题,帮忙看看代码哪里错了 帮看看这个判断防火墙的逻辑准确不? 新窗口弹出的问题 移位运算符的疑问 spring框架特点 现在.net开发的走什么方向前途比较大? 冰天雪地 裸体 跪求sql 文本编辑器 求GIF图片的生成方法 FreeTextBox的使用问题 checkbox如何通过javascript判断是取消选择操作? 如何让生成的excel表格只读 【一天一YY】11.10 美女都进来 夸夸我这个大天才吧~~~~~~~~~~~~!!!!!来吧各位同学们 网络异常的处理 如何实现数据库同步 突然的问题~~~ String 的 immutable 体现在哪里? vb6.0程序转换为VB.NET 字节数组转换成字符串 【我是新来的,散分,求关注】 两种动态SQL写法有区别么? c#如何读取给定路径下的所有文件,注意该路径下也许有子文件夹,子文件夹里有文件, 最终获取所有的文件名。 你们什么时候开始学java的? telnet的问题 windows下面有两个网卡时,其中一个网卡的网关获取不到 c#winform 鼠标事件 tomcat配置问题 高手进 送分了 joomla里怎样添加新的php页面 【祝李哥明日生日快乐】 winform 如何实现 当网线一插入的时候 就运行一个程序 Failed to install HelloAndroid.apk on device \'emulator-5554! jacob.dll配置问题,急需帮助!