亲爱的我有以下问题。我需要从SQL Server 2005数据库中获取产品列表。事实证明我应该首先计算股票,这与许多表格有关,然后对其他表格进行计算。问题是,查询显示我分别找到了记录并且没有成功分组(除了测试之外,在这里和整个调查Google)所以我决定咨询:
PD:我把地下产品[cod_bodeg]的产品放在一边,价值较低10687到10000
PD2:该数据库属于智利ERP,他们不提供该模型的文档。我所知道的就是我自己研究的。
这是我的查询:有什么建议?
SELECT
ROUND ( ISNULL(
(
SELECT isnull( SUM( STOCK_DB.STK_FISICO ),0 )
FROM
STOCK_DB
JOIN CHOI_DB
ON STOCK_DB.cod_bodeg = CHOI_DB.numreg
WHERE
STOCK_DB.ARTICULO=ART_DB.nreguist
AND STOCK_DB.NUMEMPSTK=1
AND CHOI_DB.codigo NOT IN ('B98','B4','B6','B2')
) - ISNULL(
(
SELECT
SUM(notde_db.cantidad - notde_db.cantdesp)
FROM
notde_db,notv_db
WHERE
notde_db.ncodart=ART_DB.nreguist
AND notde_db.terminado=0
AND notv_db.numreg=notde_db.numrecor
GROUP BY notde_db.ncodart
)
,0) , 0
), 0) as DISPONIBLE,
[NOMBRE],
[NREGUIST],
[CODIGO],
[IMPUTABLE],
[XX],
[UNIDMED],
ROUND([PRECVTA], 0) AS PRECVTA,
[NIVEL1],
[NIVEL2],
[NIVEL3],
[NIVEL4],
[NIVEL5],
[NIVEL6],
[NIVEL7],
[NIVEL8],
[NIVEL9],
[CLASE1],
[CLASE2],
[CLASE3],
[CLASE4],
[ART_DISPON],
[OBS],
ROUND(ISNULL([DESCT_DB].[DESCTO],0) ,0) as PRECIO2
FROM
[STOCK_DB], [ART_DB]
LEFT JOIN
[DESCT_DB] ON ([DESCT_DB].[IDART] = [ART_DB].[NREGUIST])
WHERE
tipo = 1
AND clase2 != 'XX'
AND clase4 != 'OFF'
AND ([STOCK_DB].[cod_bodeg] != 10687 OR ( [STOCK_DB].[cod_bodeg] = 10687 AND [DESCT_DB].[DESCTO] > 10000))
ORDER BY
DISPONIBLE DESC
谢谢!