已知:
入库头表:ppWorkCentreInHdr 主键:sWorkCenreInNo
入库明细表:ppWorkCentreInDtl 
外键: sWorkCenreInNo    指向入库头表
外键:sFabric    指向布号表
布号表:mmFabric 主键:sFabric
外键:ummMaterialGUID      指向布物料表
布物料表:mmMaterialFabric  主键:ummMaterialGUID
现要求:每种布最后一次入库的数量,入库单号,入库时间每种布都可多次入库请问各位,这个查询该怎么写
SELECT  B.nQty,B.sWorkCentreInNo, C.tInTime, D.sMaterialName INTO #A
FROM dbo.mmFabric A WITH(NOLOCK)
INNER JOIN dbo.ppWorkCentreInDtl B WITH(NOLOCK) ON B.sFabricNo=A.sFabricNo
INNER JOIN dbo.ppWorkCentreInHdr C WITH(NOLOCK) ON C.sWorkCentreInNo=B.sWorkCentreInNo
INNER JOIN dbo.mmMaterialFabric D WITH(NOLOCK) ON A.ummMaterialGUID =D.ummMaterialGUID
WHERE D.sMaterialName LIKE '%51黑套黑弹力牛仔布%'
这个查询有问题,各位帮帮忙

解决方案 »

  1.   

    SELECT  B.nQty,B.sWorkCentreInNo, C.tInTime, D.sMaterialName 
    FROM dbo.mmFabric A WITH(NOLOCK)
    INNER JOIN dbo.ppWorkCentreInDtl B WITH(NOLOCK) ON B.sFabricNo=A.sFabricNo
    INNER JOIN dbo.ppWorkCentreInHdr C WITH(NOLOCK) ON C.sWorkCentreInNo=B.sWorkCentreInNo
    INNER JOIN dbo.mmMaterialFabric D WITH(NOLOCK) ON A.ummMaterialGUID =D.ummMaterialGUID
    WHERE D.sMaterialName LIKE '%51黑套黑弹力牛仔布%'
    ORDER BY C.tInTime DESC
    nQty,sWorkCentreInNo, tInTime,sMaterialName 
    分别是数量,入库单号,入库时间,布名
      

  2.   

    如果是2005的话,可以使用ROW_NUMBER() OVER(PARTITION BY 布名 ORDER BY 入库时间 DESC) AS ROWINDEX,然后选择ROWINDEX=1的记录即可。