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

关于"冲红"数据,请高手指教解决方案

2012-01-13 
关于冲红数据,请高手指教TAZSTAZS2030.12接头2030.12PZSETCIN-06-0055来料验收入库增2006-12-2213:03:24

关于"冲红"数据,请高手指教
TAZS
TAZS2030.12接头2030.12   PZSETCIN-06-0055来料验收入库增2006-12-22   13:03:24.00080.00.00TAZS
TAZS2030.12接头2030.12   PZSETCIN-06-0103来料验收入库增2006-12-22   13:03:50.00012.00.00TAZS
TAZS7866-03针织7866-03PCSCIN-06-0001来料验收入库增2006-11-08   15:44:01.00011472.00.00TAZS
TAZS7866-03PCSOU060012其他出库单减2006-10-27   18:56:15.000.0011472.00TAZS
TAZS7866-03针织   7866-03PCSCIN-06-0001来料验收入库减2006-11-11   14:19:21.000.0011472.00

[解决办法]
你的进销存表没有主键吗?你的第一条记录和第四条记录完全一样.
因为你没有主键只能这样查:
select distinct A.WareHId,A.Itemid,A.inQty,A.outQty,B.inQty,B.outQty,A.Billid,A.Iostyle,A.comm from inviolog A inner join inviolog B on
A.corpcode=B.corpcode and A.warehid=B.WareHid and A.Itemid=B.Itemid
and charindex(A.iostyle,B.iostyle)> 0 and a.inqty=b.Outqty and A.billid=B.Billid and ((A.ioflag= '增 ' and B.ioflag= '减 ') or (A.ioflag= '减 ' and B.ioflag= '增 '))
这样查出来的应该是需要冲红的记录.
如果有主键就好办了.

[解决办法]
设置个联合主键不行吗
[解决办法]
LZ,你把表结构贴出来啊

光看你的SELECT语句太抽象了

[解决办法]
建立扩展你的表结构吧,将红冲和被红冲记录做一个标记flag,查询不就好办了
[解决办法]
SELECT *
FROM table1 a
WHERE NOT EXISTS
(SELECT 1
FROM table1 b
WHERE b.单据编号=a.单据编号
AND b.单据类别=
CASE a.单据类别
WHEN '来料验收入库 ' THEN '来料验收入库(反审核) '
WHEN '其他出库单 ' THEN '其他出库单(反审核) '
END
AND b.出入标志=
CASE a.出入标志
WHEN '增 ' THEN '减 '
WHEN '减 ' THEN '增 '
END
AND b.入库数=a.出库数
AND b.出库数=a.入库数)

热点排行