הצטרפו לקבוצות שלנו לקבלת עדכונים מרוכזים פעם בשבוע:

ווטסאפ:
http://wa.dwh.co.il
טלגרם:
http://telegram.dwh.co.il

סקריפט לשרשור ערכים מאותו שדה

More
15 years 3 weeks ago #6313 by ערן מוזס
שלום,
אני משתמש בגרסה 10 וחווה את הבעיה הפשוטה הבאה. זהו הסקריפט שלי אשר מטרתו היא לשרשר ערכים משדה מסויים (אשר נקרא מקובץ qvd) ולהפרידם בפסיקים. הבעיה היא שהסקריפט נכשל בגלל בנסיון לשרשר את הפסיקים. במידה ואני מוריד את השרשור של הפסיקים הכל עובד (אך אז אין הפרדה בין הערכים):

DISTINCT_TASKS:
LOAD Distinct TASK_ID From shavit_tasks.qvd(qvd);

COUNT_T:
LOAD COUNT(TASK_ID) AS COUNT_TASKS
Resident DISTINCT_TASKS;

LET vCOUNT_TASKS=peek('COUNT_TASKS');
LET vTASK_ID_CON='';
//LET vCOMMA="AAA";

TASKS:
LOAD TASK_ID,RowNo() AS ROW_NUMBER
Resident DISTINCT_TASKS;

for i=1 to $(vCOUNT_TASKS)

LOAD TASK_ID as TASK_ID_CON
Resident TASKS
WHERE ROW_NUMBER=$(i);
//LET vCOMMA=$(vCOMMA)&$(vCOMMA);
LET vTASK_ID_CON=PEEK('TASK_ID_CON')&','&$(vTASK_ID_CON);
next i;

האם מישהו יודע מה הגורם לשגיאה וכיצד משרשרים באופן תקין?

Please התחברות to join the conversation.

More
15 years 3 weeks ago #6314 by Daniel Chotzen
שלום ערן.
ישנה דרך קלה יותר לדעתי באמצעות הפונקציה concat.

הפונקציה הזו עובדת בדומה לפונקציה SUM רק שבמקום לצרף מספרים היא מצרפת מחרוזות עם אפשרות לציין מפריד.

ם תריץ את הקוד הבא,
תקבל טבלה המכילה רשומה אחת ובה שדה אחד בלבד המכיל שורה ארוכה של כל הערכים מופרדים בפסיק (החלף מפריד כרצונך).

DISTINCT_TASKS:
LOAD Distinct TASK_ID From shavit_tasks.qvd(qvd);

TASKS:
load
concat(TASK_ID)
resident DISTINCT_TASKS

drop table DISTINCT_TASKS

שים לב שאין לך יותר מדי ערכים בשדה שאותו אתה משרשר, זה עלול ליצור מחרוזת ארוכה מדי.

אגב פונקציה זו קיימת גם בגרסה לאובייקטים בlayout


לסיום בואו ננסה אתגר קטן.
ישנה פונקציה שעושה בדיוק את ההפך (ואני בכוונה לא מפרט מה הכוונה - ההפך). מי שימצא אותה :cheer: יקבל דוגמת סקריפט קטנה ושימושית לישומה.

Please התחברות to join the conversation.

More
15 years 3 weeks ago #6316 by ערן מוזס
דניאל, תודה על התשובה.
כבר אתמול, לאחר שנברתי קצת יותר, גיליתי גם אני את פונקציית ה-CONCAT אשר נותנת לי פתרון מדוייק למה שאני צריך במקרה הזה.
בכל מקרה, בשביל שימוש עתידי, האם אתה יודע להסביר לי מדוע השרשור שניסיתי אני לעשות נכשל?

Please התחברות to join the conversation.

Moderators: avishaylgiladlDaniel Chotzenodedth
Time to create page: 0.272 seconds