易飛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
效果參考下圖