如何刪除表中相同的資料?親愛的,
每次我進入選單哪一「行」刪除相同的數據,
我想自動刪除表中相同的數據,不知道JSL怎麼寫
我該怎麼寫?
Re: 如何刪除表中相同的資料?我只是從頭開始,這對我來說很有效。 嘗試了 MIn() 和 Max(),它給出了我所期望的結果。
我確實注意到了幾件事:
1. 當我告訴你我新增了第 1 列時,我忘記提及我將其初始化為順序數字。 IE 我基本上複製了行號。
2. 注意到您在表名稱周圍使用了括號,並且表名稱以“$”結尾。 這些都是 MS 對 SQL 的看法。 嘗試消除這些。
3. 我不記得我是否告訴過您要點擊自訂 sql 視窗中的更新按鈕,但似乎在執行查詢之前對我有幫助。
Re: 如何刪除表中相同的資料?
我很遺憾地告訴你,這行不通
警報是圓參考;
選擇 t1.*
由 [溶解度$] t1,
(選擇不同的“批號”, Min("第 1 列") as "第 1 列"來自[溶解度$]按“批號”分組)AS t2
WHERE t1."第 1 欄" = t2."第 1 欄"
Re: 如何刪除表中相同的資料?我繼續透過將子查詢作為表來重新編寫它,以便您可以看到差異。 有時,一種方法比另一種方法效果更好或更清晰。 這裡的「t1」和「t2」是別名。
選擇 t1.*
從溶解度 t1,
( SELECT DISTINCT "LOT NO", Min("Column 1") AS "Column 1" FROM Solubility GROUP BY "LOT NO" ) AS t2
WHERE t1."第 1 欄" = t2."第 1 欄"
;
Re: 如何刪除表中相同的資料?犯了一個小錯誤 - 使用 Min 將返回您的“刪除”表。Re: 如何刪除表中相同的資料?您的問題是您在所有溶解度列中使用 DISTINCT。 因為對於 LOT NO 1700002,您在列異常內容中具有唯一值(即「電斷點」、「針孔」),所以您會不斷傳回相同的行,因為每一行在列集上都是唯一的。
如果我沒記錯的話,Excel(即M$)sql有第一個或最後一個版本,SAS(即JMP)沒有(儘管在當前版本下可能已經改變)。
這是我寫的程式碼,似乎可以回答您的問題:
選擇 t2.*
來自 溶解度 t2
WHERE t2.「第 1 列」IN (
選擇不同的 t1。“第 1 列”
來自 溶解度 t1
按 t1 分組。 “批次號碼”
HAVING t1."第 1 列" = Max(t1."第 1 列"));
我在 JMP 中開啟了 Solubility
我添加了一列,即 Column 1(將其視為排序/順序列)
接下來我進入表格下的 SQL 查詢建構器
選擇溶解度作為表後,我選擇了“column 1”和“lot no”,我將在相關子查詢(即臨時表)中使用它,並僅檢查 DISTINCT Rows,然後單擊添加
現在,我點擊查詢名稱旁邊的三角形,然後選擇“轉換為 Sql”。 這將讓我編寫程式碼(30 年的 SAS - 單擊並指向只能讓您到目前為止)。
我將程式碼編輯為上面給您的內容,運行查詢,更正出現的任何錯誤,直到它正確運行。
基本上,我在上面提到的相關子查詢的第 1 列上匹配了您修改後的溶解度。 子查詢透過取得每組「批次號碼」的最大列 1,傳回唯一的「列 1」。 我在這裡使用 Max() 作為最後一個的替代品。 Min() 可用作 FIRST 的替代品。
我也可以將其作為另一個表的子查詢的 JOIN 來完成。 我們把這個留到明天再說。
我知道這可能非常深奧,但如果您有任何問題請告訴我,我會盡力回答。
RCW
Re: 如何刪除表中相同的資料?謝謝
附帶的excel檔案「溶解度」是我想要修改的原始數據
附件“data.dsn”是資料庫
我想要的結果是名為「刪除」的 excel
我寫“從 [Solubility$] 中選擇不同的 [批次號碼]、程式碼、[異常內容]”
刪除“LOT NO”中相同的數據
但這行不通。
Re: 如何刪除表中相同的資料?JMP 查詢產生器可讓您將 JSL 新增至查詢。請參閱第 121 頁的文檔
幫助==>書籍==>使用JMP
它將允許您在查詢中新增程式碼,以便在每次提取資料時自動刪除所需的行。
Re: 如何刪除表中相同的資料?謝謝
我使用JMP菜單的“Built Query”從資料庫獲取數據,
@tx尼爾森寫道:
當您從資料庫開啟資料時,您必須將 JSL 新增至用於檢索資料的腳本。您使用什麼方法從資料庫取得資料?
Re: 如何刪除表中相同的資料?當您從資料庫開啟資料時,您必須將 JSL 新增至用於檢索資料的腳本。您使用什麼方法從資料庫取得資料?
Re: 如何刪除表中相同的資料?謝謝,
這資料表來自資料庫,每次開啟都會刷新資料。
所以我期望JSL會自動重新執行以刪除表中出現的相同資料。
@tx尼爾森寫道:
請澄清。我很困惑。在您附加的資料表中,有兩列,「第一」和「第二」。如果您想根據在名為「first」的欄位中找到「A」的值來刪除行,JSL 將是:
dt = Current Data Table();
dt << Select Where( :first == "A") << Delete Rows;
如果您想要根據名為「second」的欄位中的「A」值刪除行,則 JSL 將為:
dt = Current Data Table();
dt << Select Where( :second == "A") << Delete Rows;
所以當你說“但是如果我刷新資料“…您是否表示,當您重新打開資料表時?您是否期望當您再次開啟資料表時 JSL 會自動重新執行?
再次開啟資料表時的資料。
Re: 如何刪除表中相同的資料?請澄清。我很困惑。在您附加的資料表中,有兩列,「第一」和「第二」。如果您想根據在名為「first」的欄位中找到「A」的值來刪除行,JSL 將是:
dt = Current Data Table();
dt << Select Where( :first == "A") << Delete Rows;
如果您想要根據名為「second」的欄位中的「A」值刪除行,則 JSL 將為:
dt = Current Data Table();
dt << Select Where( :second == "A") << Delete Rows;
所以當你說“但是如果我刷新資料“…您是否表示,當您重新打開資料表時?您是否期望當您再次開啟資料表時 JSL 會自動重新執行?
Re: 如何刪除表中相同的資料?謝謝,
但是如果我刷新數據,我無法自動刪除下面的相同數據
dt = Current Data Table();
dt << Select Where( :Col1 == "A") << Delete Rows;
Re: 如何刪除表中相同的資料?假設您可以編寫一些條件來選擇要刪除的數據,請查看腳本索引中的 SelectWhere()。
例如:
dt = Current Data Table();
dt << Select Where( :Col1 == "A") << Delete Rows;
這將刪除 Col1 中值為“A”的所有行。