首页 > 数据库 >sql server group by 分组跟着查询出对应的详细信息

sql server group by 分组跟着查询出对应的详细信息

时间:2024-07-17 15:10:23浏览次数:8  
标签:BD FNUMBER join -- FPRICE server FNAME sql group


select
PickOrgId,zzjgfnumber,zzjgfname
-- 部门编码 部门名称 仓库id 仓库编码 仓库名称
,bmfnumber,bmfname,ckid,ckfnumber,ckname
--物料id 物料编码 物料名称 单位id 单位编码 单位名称
,wlfnumber,wlfname,dwfuntid,dwfnumber,dwfname,chlbfnumber,chfname,max(FPRICE)as FPRICE,sum(amonut) as amount,row_number() over(order by wlfnumber) as FIDENTITYID
,(
SELECT '面积分摊' as method, F_TXBE_AREA
FROM (
SELECT *
,ROW_NUMBER() OVER (PARTITION BY fnumber ORDER BY fnumber DESC) AS row_num
FROM T_BD_DEPARTMENT

) t
WHERE row_num = 1 and FNUMBER=bmfnumber
)
from
(
-- 领用组织id 领用组织编码 领用组织名称
select qtch.FPICKORGID as PickOrgId,zzjg.fnumber as zzjgfnumber,zzjgl.fname as zzjgfname
-- 部门编码 部门名称 仓库id 仓库编码 仓库名称
,bm.FNUMBER as bmfnumber,bml.FNAME as bmfname,ck.FStockId as ckid,ck.FNUMBER as ckfnumber,ckl.FNAME as ckname
--物料id 物料编码 物料名称 单位id 单位编码 单位名称
,wl.FMASTERID,wl.FNUMBER as wlfnumber,wll.FNAME as wlfname,dw.FUNITID as dwfuntid,dw.FNUMBER as dwfnumber,dwl.FNAME as dwfname,

chlb.FNUMBER as chlbfnumber,chlbl.FNAME as chfname,sum(isnull(FQty,0)) as FQty
,case when max(qtchmx.FPRICE)>0 then max(qtchmx.FPRICE) else max(wldj.FPRICE) end as FPRICE
,case when max(qtchmx.FPRICE)>0 then sum(isnull(FQty,0))*max(qtchmx.FPRICE) else sum(isnull(FQty,0))*max(wldj.FPRICE)end as amonut

--其他出库单

from T_STK_MISDELIVERY as qtch
left join T_STK_MISDELIVERYENTRY as qtchmx
on qtch.fid=qtchmx.fid
left join T_ORG_Organizations as zzjg
on qtch.FPICKORGID=zzjg.FOrgID

left join T_ORG_Organizations_L as zzjgl
on zzjg.FOrgID=zzjgl.FOrgID
left join T_BD_DEPARTMENT as bm
on qtch.FDeptId=bm.fdeptid
inner join T_BD_DEPARTMENT_L as bml on bm.FDEPTID=bml.FDEPTID
-- 仓库
left join t_BD_Stock as ck
on qtchmx.FStockId=ck.FStockId
left join T_BD_STOCK_L as ckl
on ck.FSTOCKID=ckl.FSTOCKID
-- 物料
left join T_BD_MATERIAL as wl
on qtchmx.FMaterialId=wl.FMATERIALID
left join T_BD_MATERIAL_L as wll
on wl.FMASTERID=wll.FMATERIALID
left join t_BD_MaterialBase wljb
on wl.FMATERIALID=wljb.FMATERIALID
-- 单位
left join T_BD_UNIT as dw
on qtchmx.FUnitID=dw.FUNITID
left join T_BD_UNIT_L as dwl
on dw.FUNITID=dwl.FUNITID
left join T_BD_MATERIALCATEGORY as chlb
on wljb.FCATEGORYID=chlb.FCATEGORYID
left join T_BD_MATERIALCATEGORY_L as chlbl
on chlb.FCATEGORYID=chlbl.FCATEGORYID

left join
(
select FMATERIALID,max(FPRICE) as FPRICE
from
(SELECT FMATERIALID,ckf.FPRICE, ROW_NUMBER() OVER (PARTITION BY FMATERIALID ORDER BY fdate DESC) AS rn
FROM t_STK_InStock as ck
left join
T_STK_INSTOCKENTRY ckmx
on ck.FID=ckmx.FID
left join
T_STK_INSTOCKENTRY_F ckf
on ck.FID=ckf.FID
) as ckdj
where ckdj.rn=1
group by FMATERIALID
)as wldj
on qtchmx.FMATERIALID=wldj.FMATERIALID

where chlbl.FNAME in(
'原材料-肥料'
,'原材料-农药'
,'原材料-五金辅料'
,'原材料-保温材料'
,'原材料-包材'
)and qtch.FPICKORGID IN (105887, 105891, 105900, 105901, 105902, 105903, 105904, 105906, 105908, 105909, 105910, 305795, 621474, 702911)
and qtch.FDOCUMENTSTATUS='C'
and qtch.FDate>='2024-06-01' and qtch.FDate<='2024-07-16' and zzjgl.FLOCALEID=2052 and bml.FLOCALEID=2052 and ckl.FLOCALEID=2052 and wll.FLOCALEID=2052
and dwl.FLOCALEID=2052 and chlbl.FLOCALEID=2052


group by qtch.FPICKORGID,zzjg.fnumber ,zzjgl.fname
-- 部门编码 部门名称 仓库id 仓库编码 仓库名称
,bm.FNUMBER ,bml.FNAME ,ck.FStockId ,ck.FNUMBER ,ckl.FNAME
--物料id 物料编码 物料名称 单位id 单位编码 单位名称
,wl.FMASTERID,wl.FNUMBER ,wll.FNAME ,dw.FUNITID,dw.FNUMBER ,dwl.FNAME,
chlb.FNUMBER ,chlbl.FNAME


union all


-- 发料组织id 发料组织编码 发料组织名称
select qtch.FPRDORGID as PickOrgId,zzjg.fnumber as zzjgfnumber,zzjgl.fname as zzjgfname
-- 部门编码 部门名称 仓库id 仓库编码 仓库名称
,bm.FNUMBER as bmfnumber,bml.FNAME as bmfname,ck.FStockId as ckid,ck.FNUMBER as ckfnumber,ckl.FNAME as ckname
--物料id 物料编码 物料名称 单位id 单位编码 单位名称
,wl.FMASTERID,wl.FNUMBER as wlfnumber,wll.FNAME as wlfname,dw.FUNITID as dwfuntid,dw.FNUMBER as dwfnumber,dwl.FNAME as dwfname,

chlb.FNUMBER as chlbfnumber,chlbl.FNAME as chfname,sum(isnull(FACTUALQTY,0)) as FQty
,case when max(qtchmx.FPRICE)>0 then max(qtchmx.FPRICE) else max(wldj.FPRICE) end as FPRICE
,case when max(qtchmx.FPRICE)>0 then sum(isnull(FACTUALQTY,0))*max(qtchmx.FPRICE) else sum(isnull(FACTUALQTY,0))*max(wldj.FPRICE)end as amonut

--简单生产领料单

from T_SP_PICKMTRL as qtch
left join T_SP_PICKMTRLDATA as qtchmx
on qtch.fid=qtchmx.fid
left join T_ORG_Organizations as zzjg
on qtch.FPRDORGID=zzjg.FOrgID

left join T_ORG_Organizations_L as zzjgl
on zzjg.FOrgID=zzjgl.FOrgID
left join T_BD_DEPARTMENT as bm
on qtch.FWORKSHOPID=bm.fdeptid
inner join T_BD_DEPARTMENT_L as bml on bm.FDEPTID=bml.FDEPTID
-- 仓库
left join t_BD_Stock as ck
on qtchmx.FStockId=ck.FStockId
left join T_BD_STOCK_L as ckl
on ck.FSTOCKID=ckl.FSTOCKID
-- 物料
left join T_BD_MATERIAL as wl
on qtchmx.FMaterialId=wl.FMATERIALID
left join T_BD_MATERIAL_L as wll
on wl.FMASTERID=wll.FMATERIALID
left join t_BD_MaterialBase wljb
on wl.FMATERIALID=wljb.FMATERIALID
-- 单位
left join T_BD_UNIT as dw
on qtchmx.FUnitID=dw.FUNITID
left join T_BD_UNIT_L as dwl
on dw.FUNITID=dwl.FUNITID
left join T_BD_MATERIALCATEGORY as chlb
on wljb.FCATEGORYID=chlb.FCATEGORYID
left join T_BD_MATERIALCATEGORY_L as chlbl
on chlb.FCATEGORYID=chlbl.FCATEGORYID

left join
(
select FMATERIALID,max(FPRICE) as FPRICE
from
(SELECT FMATERIALID,ckf.FPRICE, ROW_NUMBER() OVER (PARTITION BY FMATERIALID ORDER BY fdate DESC) AS rn
FROM t_STK_InStock as ck
left join
T_STK_INSTOCKENTRY ckmx
on ck.FID=ckmx.FID
left join
T_STK_INSTOCKENTRY_F ckf
on ck.FID=ckf.FID
) as ckdj
where ckdj.rn=1
group by FMATERIALID
)as wldj
on qtchmx.FMATERIALID=wldj.FMATERIALID

where chlbl.FNAME in(
'原材料-包材'
)and qtch.FWORKSHOPID IN (105887, 105891, 105900, 105901, 105902, 105903, 105904, 105906, 105908, 105909, 105910, 305795, 621474, 702911)
and qtch.FDOCUMENTSTATUS='C'
and qtch.FDate>='2024-06-01' and qtch.FDate<='2024-07-16' and zzjgl.FLOCALEID=2052 and bml.FLOCALEID=2052 and ckl.FLOCALEID=2052 and wll.FLOCALEID=2052
and dwl.FLOCALEID=2052 and chlbl.FLOCALEID=2052


group by qtch.FPRDORGID,zzjg.fnumber ,zzjgl.fname
-- 部门编码 部门名称 仓库id 仓库编码 仓库名称
,bm.FNUMBER ,bml.FNAME ,ck.FStockId ,ck.FNUMBER ,ckl.FNAME
--物料id 物料编码 物料名称 单位id 单位编码 单位名称
,wl.FMASTERID,wl.FNUMBER ,wll.FNAME ,dw.FUNITID,dw.FNUMBER ,dwl.FNAME,
chlb.FNUMBER ,chlbl.FNAME ) as total
where 1=1
group by PickOrgId,zzjgfnumber,zzjgfname
-- 部门编码 部门名称 仓库id 仓库编码 仓库名称
,bmfnumber,bmfname,ckid,ckfnumber,ckname
--物料id 物料编码 物料名称 单位id 单位编码 单位名称
,wlfnumber,wlfname,dwfuntid,dwfnumber,dwfname,chlbfnumber,chfname

标签:BD,FNUMBER,join,--,FPRICE,server,FNAME,sql,group
From: https://www.cnblogs.com/woshinige/p/18307401

相关文章

  • thinkphp或laravel连接sql server 2014数据库
    问题描述:平时使用最多为mysql数据库,目前有项目数据库为sqlserver2014,列出连接全过程1.配置thinkphp或laravel的config/database.php文件后,配置sql对应的配置如下:'sqlsrv'=>['driver'=>'sqlsrv','host'=>'localhost','port'=>......
  • Database Supplementary SQL/NoSQL
    Database Supplementary Assessment 2024S1Please notethatthis isasupplementaryassessment.Youmustclearly show a satisfactory understandingofthe keyareascovered inthe unit, namelydatabase design(including normalisation)andSQL/NoS......
  • EFCore -CodeFirst模式 数据库使用SqLite
    首先安装nuget包:System.Data.SQLite和SQLite.CodeFirst,如下二图:然后在App.config中配置数据库连接字符串:<connectionStrings><addname="StuDB"connectionString="datasource=BoilerCalculator.db"providerName="System.Data.SQLite.EF6"/&......
  • oracle Mysql PostgreSQL 数据库的对比
    oracleMysqlPostgreSQL数据库的对比HOXJUN于2018-07-1318:44:25发布阅读量7.3k收藏11点赞数1版权Mysql的多表连接查询只支持NestLoop,不支持hashjoin和sortmergejoin,子查询性能较低,不支持sequenceMysql在执行过程中出现问题只产生很少的性能数据,难准确定位......
  • SQL 获取employees中的first_name
    系列文章目录文章目录系列文章目录前言前言前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。描述现有employees表如下:请你将employees中的first_name,并按照first_n......
  • SQL 将employees表中的所有员工的last_name和first_name通过(\‘)连接起来。
    系列文章目录文章目录系列文章目录前言前言前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。描述现有strings表如下:id指序列号;string列中存放的是字符串,且字符串中......
  • mysql主从同步(一主一从)
    一.准备两台服务器二.在主服务器和从服务器安装mysql1.去mysql官网找到自己需要的mysql版本(我这里使用的是5.7.23)2.我这里使用的是解压tar.gz为例3.把mysql解压出来(我解压的路径是/home/mysql)4.cd/home/mysql进入mysql目录 使用mkdirmysqldb创建存放数据库的文件夹......
  • MySQL安装过程中的问题,求大佬们帮忙解答。
    记录一个MySQL安装时的日志,麻烦大佬们帮忙看看。2024-07-15T14:12:49.255307Z0[System][MY-013169][Server]/usr/sbin/mysqld(mysqld8.0.33)initializingofserverinprogressasprocess227942024-07-15T14:12:49ZUTC-mysqldgotsignal11;Mostlikely,youh......
  • make sadservers happy again
    背景从阮一峰老师的博客了解到sadserver这样一个可以提供linux服务器,并尝试解决系统和服务相关问题的在线测试平台。非常难得的是它可以直接提供一个公网的linux服务器(一般40-60分钟后会自动销毁),你可以在上面做任何探索。对于想要学习常用linux指令的同学,是一个非常不......
  • 将DBF文件(dBase, FoxPro等)中的数据转换到SQLite
    将DBF文件(dBase,FoxPro等)中的数据转换到SQLite,可遍历指定目录下所有的dbf文件。可参考以下程序,本程序参考了dbf-to-sqlite: #_*_coding:utf-8_*_'''@File:main.py@Time:2024/07/17@Author:LionGIS@Contact:[email protected]@Description:......