首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于多表联合查询后汇入一个查询的有关问题

2012-12-17 
关于多表联合查询后汇入一个查询的问题。本帖最后由 xubxuq 于 2012-11-16 08:43:17 编辑---1、采购的查询se

关于多表联合查询后汇入一个查询的问题。
本帖最后由 xubxuq 于 2012-11-16 08:43:17 编辑


---1、采购的查询
select YEAR(copurchase.PurDate) AS NF,MONTH(copurchase.PurDate) AS YF,pbMaterial.MaterialID AS WLDM,pbMaterial.MaterialName AS WLName,SUM(coPurchaseDetail.Amount) AS BZSLfrom copurchaseinner join coPurchaseDetail on copurchase.PurNo=coPurchaseDetail.PurNoinner join pbMaterial on coPurchaseDetail.MaterialNo=pbMaterial.MaterialNowhere YEAR(copurchase.PurDate)=2012 and MONTH(copurchase.PurDate)=9 GROUP BY YEAR(PurDate),MONTH(PurDate) ,pbMaterial.MaterialID,pbMaterial.MaterialName

 ----2、入库的查询
select YEAR(stInStore.InDate) AS NF,MONTH(stInStore.InDate) AS YF, pbMaterial.MaterialID AS WLDM,pbMaterial.MaterialName AS WLName,SUM(stInStoreDetail.OriginalWeight) AS RKZLfrom stInStoreinner join stInStoreDetail on stInStore.InStoreNo=stInStoreDetail.InStoreNoinner join coPurchaseDetail on coPurchaseDetail.DetailNo=stInStoreDetail.PurDetailNoinner join pbMaterial on coPurchaseDetail.MaterialNo=pbMaterial.MaterialNowhere YEAR(stInStore.InDate)=2012 and MONTH(stInStore.InDate)=9 and stInStore.TypeNo=3group by YEAR(stInStore.InDate),MONTH(stInStore.InDate),pbMaterial.MaterialID,pbMaterial.MaterialName 

---3、出库的查询
select YEAR(stOutStore.OutDate) AS NF,MONTH(stOutStore.OutDate) AS YF,pbMaterial.MaterialID AS WLDM,pbMaterial.MaterialName AS WLName,SUM(stOutStoreDetail.OriginalWeight) AS CKZLfrom stOutStoreinner join stOutStoreDetail on stOutStore.OutStoreNo=stOutStoreDetail.OutStoreNoinner join pmOrderMaterial on pmOrderMaterial.OrderMaterialNo=stOutStoreDetail.OrderMaterialNoinner join pbMaterial  on pbMaterial.MaterialNo=pmOrderMaterial.MaterialNowhere YEAR(stOutStore.OutDate)=2012 and MONTH(stOutStore.OutDate)=9 and stOutStore.TypeNo in (3,33,9,12)group by YEAR(stOutStore.OutDate),MONTH(stOutStore.OutDate),pbMaterial.MaterialID,pbMaterial.MaterialName

现已写了三个多表查询,分别是关于采购、入库、出库的 ,
 关于采购的:selete1查询结果:
 年份  月份   物料代码   物料名称   采购重量
 
关于入库的:selete2查询结果:
 年份  月份   物料代码   物料名称   入库重量
 
关于出库的:selete3查询结果:
 年份  月份   物料代码   物料名称   出库重量
 
现在需要接这三个表联全在一起,,比如我要查找2012年物料代码为10001的物料,则显示1-12个月的采购、入库、出库的重量(上面的查询已经计算好)的记录
 年份  月份   物料代码   采购重量   入库重量  出库重量
 2012  1     10001    1000     500      600  
 2012  2     10001     0       200      600 
 比如2月此物料没有采购,但是1月有采购记录,在2月份入库,则显示1月采购数量为0。。
 
请教这个最终的查询如果整合上面三个查询呢?  能否将三个查询都存入临时表 1  2 3 中,然后用full join 进行连接?求教了!!! 
[最优解释]
select YEAR(copurchase.PurDate) AS NF,
       MONTH(copurchase.PurDate) AS YF,
       pbMaterial.MaterialID AS WLDM,
       pbMaterial.MaterialName AS WLName,
       SUM(coPurchaseDetail.Amount) AS BZSL ,


       SUM(stInStoreDetail.OriginalWeight) AS RKZL ,
       SUM(stOutStoreDetail.OriginalWeight) AS CKZL 
from copurchaseinner, stInStoreinner,  stOutStoreinner  
        join coPurchaseDetail on copurchase.PurNo=coPurchaseDetail.PurNoinner
        join stInStoreDetail on stInStore.InStoreNo=stInStoreDetail.InStoreNoinner
        join stOutStoreDetail on stOutStore.OutStoreNo=stOutStoreDetail.OutStoreNoinner
  join pmOrderMaterial on pmOrderMaterial.OrderMaterialNo=stOutStoreDetail.OrderMaterialNoinner
        join pbMaterial on coPurchaseDetail.MaterialNo=pbMaterial.MaterialNo 
where YEAR(copurchase.PurDate)=2012 and MONTH(copurchase.PurDate)=9 
GROUP BY YEAR(PurDate),MONTH(PurDate) ,pbMaterial.MaterialID,pbMaterial.MaterialName


[其他解释]
或者说我给出一个  2012年 5月 及 物料代码的值,, 可以查询出这个物料在这2012年5月的采购重量、入库重量、出库重量。。,如果没有数值就为0
[其他解释]
select YEAR(copurchase.PurDate) AS NF,MONTH(copurchase.PurDate) AS YF,pbMaterial.MaterialID AS WLDM,pbMaterial.MaterialName AS WLName,
   SUM(coPurchaseDetail.Amount) AS BZSL , 
   SUM(stInStoreDetail.OriginalWeight) AS RKZL ,
   SUM(stOutStoreDetail.OriginalWeight) AS CKZL
from copurchaseinner, stInStoreinner,  stOutStoreinner  
       join coPurchaseDetail on copurchase.PurNo=coPurchaseDetail.PurNoinner 
       join stInStoreDetail on stInStore.InStoreNo=stInStoreDetail.InStoreNoinner
       join stOutStoreDetail on stOutStore.OutStoreNo=stOutStoreDetail.OutStoreNoinner 
join pmOrderMaterial on pmOrderMaterial.OrderMaterialNo=stOutStoreDetail.OrderMaterialNoinner
       join pbMaterial on coPurchaseDetail.MaterialNo=pbMaterial.MaterialNowhere YEAR(copurchase.PurDate)=2012 and MONTH(copurchase.PurDate)=9 
GROUP BY YEAR(PurDate),MONTH(PurDate) ,pbMaterial.MaterialID,pbMaterial.MaterialName
 
[其他解释]
把你上面三个select语句用  union all 连接试试看

---1、采购的查询
select YEAR(copurchase.PurDate) AS NF,MONTH(copurchase.PurDate) AS YF,pbMaterial.MaterialID AS WLDM,pbMaterial.MaterialName AS WLName,SUM(coPurchaseDetail.Amount) AS BZSLfrom copurchaseinner join coPurchaseDetail on copurchase.PurNo=coPurchaseDetail.PurNoinner join pbMaterial on coPurchaseDetail.MaterialNo=pbMaterial.MaterialNowhere YEAR(copurchase.PurDate)=2012 and MONTH(copurchase.PurDate)=9 GROUP BY YEAR(PurDate),MONTH(PurDate) ,pbMaterial.MaterialID,pbMaterial.MaterialName

union all
 
 ----2、入库的查询
select YEAR(stInStore.InDate) AS NF,MONTH(stInStore.InDate) AS YF, pbMaterial.MaterialID AS WLDM,pbMaterial.MaterialName AS WLName,SUM(stInStoreDetail.OriginalWeight) AS RKZLfrom stInStoreinner join stInStoreDetail on stInStore.InStoreNo=stInStoreDetail.InStoreNoinner join coPurchaseDetail on coPurchaseDetail.DetailNo=stInStoreDetail.PurDetailNoinner join pbMaterial on coPurchaseDetail.MaterialNo=pbMaterial.MaterialNowhere YEAR(stInStore.InDate)=2012 and MONTH(stInStore.InDate)=9 and stInStore.TypeNo=3group by YEAR(stInStore.InDate),MONTH(stInStore.InDate),pbMaterial.MaterialID,pbMaterial.MaterialName 



union all
 
---3、出库的查询
select YEAR(stOutStore.OutDate) AS NF,MONTH(stOutStore.OutDate) AS YF,pbMaterial.MaterialID AS WLDM,pbMaterial.MaterialName AS WLName,SUM(stOutStoreDetail.OriginalWeight) AS CKZLfrom stOutStoreinner join stOutStoreDetail on stOutStore.OutStoreNo=stOutStoreDetail.OutStoreNoinner join pmOrderMaterial on pmOrderMaterial.OrderMaterialNo=stOutStoreDetail.OrderMaterialNoinner join pbMaterial  on pbMaterial.MaterialNo=pmOrderMaterial.MaterialNowhere YEAR(stOutStore.OutDate)=2012 and MONTH(stOutStore.OutDate)=9 and stOutStore.TypeNo in (3,33,9,12)group by YEAR(stOutStore.OutDate),MONTH(stOutStore.OutDate),pbMaterial.MaterialID,pbMaterial.MaterialName


[其他解释]
引用:
SQL code?1234567891011select YEAR(copurchase.PurDate) AS NF,MONTH(copurchase.PurDate) AS YF,pbMaterial.MaterialID AS WLDM,pbMaterial.MaterialName AS WLName,   SUM(coPurchaseDetail.Amount)……


有错误 ,提示copurchase.PurNo等几处有 ===“count not be bound”
[其他解释]
引用:
引用:
SQL code?1234567891011select YEAR(copurchase.PurDate) AS NF,MONTH(copurchase.PurDate) AS YF,pbMaterial.MaterialID AS WLDM,pbMaterial.MaterialName AS WLName,   SUM(coPurchaseDetail.Am……

大致是那样,我没法测试

热点排行
Bad Request.