שאלה ב SQL - איך עושים שאילתא שתקושר לקובץ אקסל ?

תאו

משתמש פעיל
D I G I T A L
יש שאילתא שאמורה לבצע חישוב כמה הוצאות היו לכל סניף בכל עתון פרסום .
כך היא אמורה להראות :

ידיעון המבשר המודיע
בני ברק
מודיעין עילית
ירושלים
ראשון
וכו'

לא כל עתון מתפרסם בכל הערים ולכן לכל קבוצת עתונים החישוב של האחוזים מתחלק אחרת ...
לצורך כך יש לי קובץ אקסל עם אחוזים לכל קבוצה ,
השאלה איך אני מקשרת בין העמודות האלו באקסל לבין השאילתא בSQL ?
 

mordy

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
D I G I T A L
זה לא יהיה מסובך אם הנתונים מהאקסל יהיו בטבלה בsql
אני עושה דברים כאלה בצורה די קלה אם כי לא כל כך מתוחכמת
פשוט להעתיק את הכל מהאקסל לsql ולהוסיף insert
 

תאו

משתמש פעיל
D I G I T A L
בטח לא העתקה בצורה ידנית ...
אז איך עושים את זה בצורה אוטומטית לא ידנית ?
אני חשבתי אולי להכניס את זה לתוך טבלה זמנית איך עושים את זה ?
השאלה איך אח"כ אני גם עוברת על כל העמודות ומכפילה אותם בסכום ?
 

mordy

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
D I G I T A L
בטח לא העתקה בצורה ידנית
Ctrl + a
Ctrl + c
Ctrl + v

בהקשה אחת הוספתי פסיקים בסוף כל שורה, נשאר רק לכתוב את משפט הinsert והופ 10,000 רשומות התעדכנו
אפשר לחכות לתשובה מהמקצוענים על הדרך הנכונה לעשות את זה, אני גם אשמח לשמוע אבל לבנתיים הנה פיתרון שעובד
 

תאו

משתמש פעיל
D I G I T A L
אני כן צריכה שזה יהיה אוטומטי בכל פעם שאני מריצה את השאילתא ולא ידנית ,

ראיתי שיש דרכים לעשות את זה ניסיתי את הצורה הזאת :
SELECT * INTO EXCEL_IMPORT
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0; Database=C:\Users\af\Desktop\Reports\Jan_2016_Ships.xlsx; HDR=YES; IMEX=1',
'SELECT * FROM [Sheet1$]');

וזה נתן לי שגיאה :
The OLE DB provider "Microsoft.ACE.OLEDB.12.0" has not been registered.
 

AVRAHAM L

משתמש מקצוען
מנוי פרימיום
בוגר/תלמיד פרוג
D I G I T A L
ראיתי שיש דרכים לעשות את זה ניסיתי את הצורה הזאת :
SELECT * INTO EXCEL_IMPORT
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0; Database=C:\Users\af\Desktop\Reports\Jan_2016_Ships.xlsx; HDR=YES; IMEX=1',
'SELECT * FROM [Sheet1$]');
נכון, בשביל הפעולה הזאת צריך להוריד תוכנה של מייקרוספט למחשב,

יש 2 אפשרויות בשביל לשאוב מידע מקבצים חיצוניים,
אם זה ח"פ יש אפשרות של IMPORT כמו הצילומ
upload_2019-5-20_19-3-19.png

אם באופן קבוע אפשרי רק מקבצי TXT או CSV דרך פקודה שנקראת BULK INSERT,
קצת קשה ללמוד בהתחלה אבל במאד הרבה מקומות עובדים עם זה בקבצים שמגיעים ממקורות חיצוניים על בסיס קבוע,
בפרט אם הפורמט של הקבצים תמיד אותו דבר,

ניתן לקרוא על זה כאן:
https://www.sqlshack.com/techniques-to-bulk-copy-import-and-export-in-sql-server/

https://www.mssqltips.com/sqlservertip/4693/easily-import-csv-files-with-r-in-sql-server-2016/

https://blog.sqlauthority.com/2008/...rt-load-comma-delimited-file-into-sql-server/

3 אתרים מצוינים על SQL
 

תאו

משתמש פעיל
D I G I T A L
אני רוצה שבכל פעם שהשאילתא תורץ זה דבר ראשון יעתיק את הנתונים מקובץ EXCEL לטבלה זמנית ...
אין אפשרות למשוך מאקסל ??
מה זה התוכנה הזאת של מייקרוסופט ?
 

תאו

משתמש פעיל
D I G I T A L
ב"ה הצלחתי להעביר את הנתונים מהאקסל לטבלת SQL ,
עכשיו יש לי בטבלה 3 עמודות : מספר סניף , קוד קבוצה , ומספר אחוזים לסניף,
אני צריכה להכפיל מספר אחוז לסניף * סכום ששמור לי במשתנה עבור כל קוד קבוצה ,
מה הורה היעילה והמומלצת לעשות את זה ?

למשל-
עבור קוד 1000:
אני צריכה לעבור על כל הרשומות בטבלה שהקוד קבוצה שלהם 1000
ולהכפיל ב 55 (דוגמא לערך משתנה sum1000@) את מספר האחוזים לסניף
ולחלק את זה לסניפים :
למשל אם סניף 2 האחוז בו 89% אני צריכה להכפיל 89%*55 ולשמור אותו עבור סניף 2
למשל אם סניף 3 האחוז בו 19% אני צריכה להכפיל 19%*55 ולשמור אותו עבור סניף 3
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קכב

א שִׁיר הַמַּעֲלוֹת לְדָוִד שָׂמַחְתִּי בְּאֹמְרִים לִי בֵּית יְהוָה נֵלֵךְ:ב עֹמְדוֹת הָיוּ רַגְלֵינוּ בִּשְׁעָרַיִךְ יְרוּשָׁלִָם:ג יְרוּשָׁלִַם הַבְּנוּיָה כְּעִיר שֶׁחֻבְּרָה לָּהּ יַחְדָּו:ד שֶׁשָּׁם עָלוּ שְׁבָטִים שִׁבְטֵי יָהּ עֵדוּת לְיִשְׂרָאֵל לְהֹדוֹת לְשֵׁם יְהוָה:ה כִּי שָׁמָּה יָשְׁבוּ כִסְאוֹת לְמִשְׁפָּט כִּסְאוֹת לְבֵית דָּוִיד:ו שַׁאֲלוּ שְׁלוֹם יְרוּשָׁלִָם יִשְׁלָיוּ אֹהֲבָיִךְ:ז יְהִי שָׁלוֹם בְּחֵילֵךְ שַׁלְוָה בְּאַרְמְנוֹתָיִךְ:ח לְמַעַן אַחַי וְרֵעָי אֲדַבְּרָה נָּא שָׁלוֹם בָּךְ:ט לְמַעַן בֵּית יְהוָה אֱלֹהֵינוּ אֲבַקְשָׁה טוֹב לָךְ:
נקרא  18  פעמים

לוח מודעות

למעלה