易飞sql
㈠ 易飞报表数据库连接失败
应该是右边的配置报错,只有右边需要配置odbc(ODBC SYS DSN),控制面板-管理工具-数据源(odbc)这里配置
或者开始运行输入odbcad32.exe
看名字需要配置一个系统dsn,然后在你的这个数据库设置页面里选择(ODBC SYS DSN下拉列表中)
㈡ 咨询一下关于易飞ERP 触发器问题
大哥、你是土豪啊、 晚上分析+手敲 你 看一下、有问题 在交流,
CREATE trigger TRIG_COPTD ON COPTD for INSERT,UPDATE AS
BEGIN
DECLARE @TD001 VARCHAR(100), @TD002 VARCHAR(100),
@TD003 VARCHAR(100) ,@UDF51 VARCHAR(100) ,
@MB039 VARCHAR(100),@TD004 VARCHAR(100),@TD008 VARCHAR(100),
@YCSL INT
SELECT @TD001=TD001, @TD002=TD002,@TD003=TD003,@UDF51=UDF51,@TD004=TD004,@TD008=TD008 FROM INSERTED
--订单数量小于最低起订单不能保存和审核
SET @YCSL = (SELECT COUNT(*) FROM (
SELECT TD004, SUM(TD008) SL,MB039 FROM COPTD LEFT JOIN INVMB ON MB001 = TD004
WHERE TD001 = @TD001 AND TD002 = @TD002
GROUP BY TD004,MB039) TA
WHERE TA.SL > TA.MB039)
IF @YCSL>0
BEGIN
RAISERROR ('订单数量小于最低起订量!',16,1)
ROLLBACK TRANSACTION
END
END
㈢ sql数据库里怎么让两个表想关联
有多种方法:
1>左联: select 列名 from Grade left join Class on Grade.GradeID = Class.GradeID
2>右联: 也是一样, 只是left改为right
3>平级查询: select 列名 from Grade, Class where Grade.GradeID = Class.GradeID
当然, 可能还有别的方法, 有这些基本就行了
㈣ SQL中多阶BOM依次展开及按级次顺序显示问题
看你前面一个答案是说易飞ERP的BOM程式﹐我就直接帮你写易飞的SQL吧﹐参考以下代码
会用到一个临时表
DECLARE@MC001VARCHAR(20)
DECLARE@MD001VARCHAR(20)
DECLARE@NEXTINT
DECLARE@LEVELINT
SET@MC001='901-001'
SET@NEXT=0
SET@LEVEL=0
CREATETABLE#BOMTREE
(
LEVELINT,--阶层
MD001VARCHAR(20),--主件品号
MD003VARCHAR(20),--元件品号
MD006INT,--组成用量
MD007INT,--底数
MB025VARCHAR(10),--品号属性
MB026VARCHAR(10),--低阶码
MB046NUMERIC(17))--标准进价
IFEXISTS(SELECT*FROMBOMMDWHEREMD001=@MC001)
BEGIN
WHILE@NEXT<2
BEGIN
IF@NEXT=0
BEGIN
INSERTINTO#BOMTREESELECT@LEVELASLEVEL,@MC001,@MC001,1,1,'M','00',0
INSERTINTO#BOMTREESELECT@LEVELASLEVEL,MD001,MD003,MD006,MD007,MB025,MB026,=MB001WHEREMD001=@MC001
SET@NEXT=1
END
IF(SELECTCOUNT(MD001)FROM#BOMTREEWHERELEVEL=@LEVELAND(MB025='M'ORMB025='S'))>0AND@NEXT=1
BEGIN
SET@LEVEL=@LEVEL+1
INSERTINTO#BOMTREESELECT@LEVELASLEVEL,MD001,MD003,MD006,MD007,MB025,MB026,=MB001WHEREMD001IN(SELECTMD003FROM#BOMTREEWHERE(MB025='M'ORMB025='S')ANDLEVEL=@LEVEL-1)
SET@NEXT=1
END
ELSE
BEGIN
SET@NEXT=2
END
END
--更新上阶制费
DECLARE@COUNTINT
SELECT@COUNT=COUNT(DISTINCTLEVEL)FROM#BOMTREE
WHILE@COUNT>0
BEGIN
--SUM((CONVERT(DECIMAL(16,6),MD006)/CONVERT(DECIMAL(16,6),MD007)*MB046))有底数的BOM
UPDATE#BOMTREESETMB046=B.NEW_MB050FROM#BOMTREEA,(SELECTMD001,SUM((MD006/MD007)*MB046)ASNEW_MB050FROM#BOMTREEWHERELEVEL=@COUNTGROUPBYMD001)BWHERE(MB025='M'ORMB025='S')ANDA.MD003=B.MD001ANDLEVEL=@COUNT-1
SET@COUNT=@COUNT-1
END
END
SELECT*FROM#BOMTREE
DROPTABLE#BOMTREE
效果参考下图