/* Create a table called MY_NUMBERS */
CREATE TABLE MY_NUMBERS(ID VARCHAR PRIMARY KEY, NUM1 INTEGER, NUM2 INTEGER, NUM3 INTEGER);
/* Create few records in this table */
INSERT INTO MY_NUMBERS VALUES(1, 32,36,85);
INSERT INTO MY_NUMBERS VALUES(2, 86,5,43);
INSERT INTO MY_NUMBERS VALUES(3, 457,37,1);
INSERT INTO MY_NUMBERS VALUES(4, 53,2,127);
INSERT INTO MY_NUMBERS VALUES(5, 8,7,565);
/* Display all the records from the table with SUM rows and columns */
SELECT DISTINCT COALESCE(ID, 'total') AS TOTAL, SUM(NUM1), SUM(NUM2),SUM(NUM3), SUM(NUM1 + NUM2 + NUM3) AS 'total'
FROM MY_NUMBERS
GROUP BY ID WITH ROLLUP
/* Create a table called MY_NUMBERS */
CREATE TABLE MY_NUMBERS(ID VARCHAR PRIMARY KEY, NUM1 INTEGER, NUM2 INTEGER, NUM3 INTEGER, NUM4 INTEGER);
/* Create few records in this table */
INSERT INTO MY_NUMBERS VALUES(1, 32,36,85, 82);
INSERT INTO MY_NUMBERS VALUES(2, 86,5,43, 76);
INSERT INTO MY_NUMBERS VALUES(3, 457,37,1, 68);
INSERT INTO MY_NUMBERS VALUES(4, 53,2,127, 59);
INSERT INTO MY_NUMBERS VALUES(5, 8,7,565, 27);
-- 1: STATIC QUERY
/* Display all the records from the table with SUM rows and columns */
SELECT DISTINCT COALESCE(ID, 'total') AS #, SUM(NUM1), SUM(NUM2),SUM(NUM3), SUM(NUM1 + NUM2 + NUM3) AS 'total'
FROM MY_NUMBERS
GROUP BY ID WITH ROLLUP
-- 2: DYNAMIC QUERY
/* Store columns names in temp table */
SELECT * INTO #MY_NUMBERS_COLUMNS
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'MY_NUMBERS'
DECLARE @MY_NUMBERS_COLUMNS_NAMES_SUM NVARCHAR(MAX)
SET @MY_NUMBERS_COLUMNS_NAMES_SUM = STUFF((
SELECT 'SUM(' + COLUMN_NAME + '), '
FROM #MY_NUMBERS_COLUMNS
WHERE COLUMN_NAME != 'ID'
FOR XML PATH('')
), 1, 0, '');
-- output: SUM(NUM1), SUM(NUM2), SUM(NUM3),
DECLARE @MY_NUMBERS_COLUMNS_NAMES_COMMA NVARCHAR(MAX)
SET @MY_NUMBERS_COLUMNS_NAMES_COMMA = STUFF((
SELECT '+' + COLUMN_NAME
FROM #MY_NUMBERS_COLUMNS
WHERE COLUMN_NAME != 'ID'
FOR XML PATH('')
), 1, 1, '');
-- output: NUM1+NUM2+NUM3
/* Using SP_EXECUTESQL */
DECLARE @QRY NVARCHAR(MAX)
SET @QRY = 'SELECT DISTINCT COALESCE(ID, ''total'') AS #, ' + @MY_NUMBERS_COLUMNS_NAMES_SUM +
' SUM(' + @MY_NUMBERS_COLUMNS_NAMES_COMMA + ') AS [total] ' +
'FROM MY_NUMBERS ' +
'GROUP BY ID WITH ROLLUP';
EXEC SP_EXECUTESQL @QRY
rhon.co.il
מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!
חלה שגיאה בשליחה. נסו שוב!
לוח לימודים
מסלולי לימוד שאפשר להצטרף
אליהם ממש עכשיו:
תהילים פרק כה
אלְדָוִד אֵלֶיךָ יי נַפְשִׁי אֶשָּׂא:באֱלֹהַי בְּךָ בָטַחְתִּי אַל אֵבוֹשָׁה אַל יַעַלְצוּ אֹיְבַי לִי:גגַּם כָּל קוֶֹיךָ לֹא יֵבֹשׁוּ יֵבֹשׁוּ הַבּוֹגְדִים רֵיקָם:דדְּרָכֶיךָ יי הוֹדִיעֵנִי אֹרְחוֹתֶיךָ לַמְּדֵנִי:ההַדְרִיכֵנִי בַאֲמִתֶּךָ וְלַמְּדֵנִי כִּי אַתָּה אֱלֹהֵי יִשְׁעִי אוֹתְךָ קִוִּיתִי כָּל הַיּוֹם:וזְכֹר רַחֲמֶיךָ יי וַחֲסָדֶיךָ כִּי מֵעוֹלָם הֵמָּה:זחַטֹּאות נְעוּרַי וּפְשָׁעַי אַל תִּזְכֹּר כְּחַסְדְּךָ זְכָר לִי אַתָּה לְמַעַן טוּבְךָ יי:חטוֹב וְיָשָׁר יי עַל כֵּן יוֹרֶה חַטָּאִים בַּדָּרֶךְ:טיַדְרֵךְ עֲנָוִים בַּמִּשְׁפָּט וִילַמֵּד עֲנָוִים דַּרְכּוֹ:יכָּל אָרְחוֹת יי חֶסֶד וֶאֱמֶת לְנֹצְרֵי בְרִיתוֹ וְעֵדֹתָיו:יאלְמַעַן שִׁמְךָ יי וְסָלַחְתָּ לַעֲוֹנִי כִּי רַב הוּא:יבמִי זֶה הָאִישׁ יְרֵא יי יוֹרֶנּוּ בְּדֶרֶךְ יִבְחָר:יגנַפְשׁוֹ בְּטוֹב תָּלִין וְזַרְעוֹ יִירַשׁ אָרֶץ:ידסוֹד יי לִירֵאָיו וּבְרִיתוֹ לְהוֹדִיעָם:טועֵינַי תָּמִיד אֶל יי כִּי הוּא יוֹצִיא מֵרֶשֶׁת רַגְלָי:טזפְּנֵה אֵלַי וְחָנֵּנִי כִּי יָחִיד וְעָנִי אָנִי:יזצָרוֹת לְבָבִי הִרְחִיבוּ מִמְּצוּקוֹתַי הוֹצִיאֵנִי:יחרְאֵה עָנְיִי וַעֲמָלִי וְשָׂא לְכָל חַטֹּאותָי:יטרְאֵה אוֹיְבַי כִּי רָבּוּ וְשִׂנְאַת חָמָס שְׂנֵאוּנִי:כשָׁמְרָה נַפְשִׁי וְהַצִּילֵנִי אַל אֵבוֹשׁ כִּי חָסִיתִי בָךְ:כאתֹּם וָיֹשֶׁר יִצְּרוּנִי כִּי קִוִּיתִיךָ:כבפְּדֵה אֱלֹהִים אֶת יִשְׂרָאֵל מִכֹּל צָרוֹתָיו:
הנושאים החמים