Ich habe die SLQ unten, um ein Datum auszuwählen, aber ich möchte zwei Daten nebeneinander sehen. Wie kann ich das machen?Wie zwei Daten nebeneinander angezeigt werden?
Delete From Variance_Analysis
INSERT INTO Variance_Analysis
SELECT PIDs.Product_Group,
PIDs.PID,
PIDs.PID_Name,
SUM(MaturityValue) Current_Balance,
AsOfDate as Current_Date
FROM [TBL_PIDs] AS PIDs INNER JOIN RAW_DATA_HIST AS RawData
ON PIDs.PID = RawData.PID
Where AsOfDate = '2017-10-31'
GROUP BY Product_Group,
PIDs.PID,
PIDs.PID_Name,
AsOfDate
Wie Sie sehen können, lösche ich die Tabelle, und dann einige IDs und ein Datum einfügen (während Kontosalden Summieren). Ich brauche ein anderes Datum und summiere die entsprechenden Salden. Dann möchte ich die absolute Differenz und die relative Differenz finden, aufgeteilt in 3 Felder. Ich bin mit SQL Server 2008.
-- Step1:
CREATE TABLE test_table (
Product_Group varchar(255),
PID varchar(10),
PID_Name varchar(255),
maturityValue decimal(18,2),
AsofDate date,
Portfolio varchar(255)
);
-- Step2:
INSERT INTO test_table (Product_Group,PID,PID_Name,maturityValue,AsofDate,Portfolio)
VALUES ('Invt','I.B.7','Investments',1258.69,'9/29/2017','Holding')
INSERT INTO test_table (Product_Group,PID,PID_Name,maturityValue,AsofDate,Portfolio)
VALUES ('Asse','A.Q.7','Assets',1263.28,'9/29/2017','Holding')
INSERT INTO test_table (Product_Group,PID,PID_Name,maturityValue,AsofDate,Portfolio)
VALUES ('Forx','X.S.7','Foreign_Exchange',1267.89,'9/29/2017','Holding')
INSERT INTO test_table (Product_Group,PID,PID_Name,maturityValue,AsofDate,Portfolio)
VALUES ('Forx','X.S.7','Foreign_Exchange',1272.51,'9/29/2017','Holding')
INSERT INTO test_table (Product_Group,PID,PID_Name,maturityValue,AsofDate,Portfolio)
VALUES ('Forx','X.S.7','Foreign_Exchange',1277.15,'9/29/2017','Holding')
INSERT INTO test_table (Product_Group,PID,PID_Name,maturityValue,AsofDate,Portfolio)
VALUES ('Govt','G.G.7','Government',1281.81,'9/29/2017','Passing')
INSERT INTO test_table (Product_Group,PID,PID_Name,maturityValue,AsofDate,Portfolio)
VALUES ('Govt','G.G.7','Government',1286.48,'9/29/2017','Passing')
INSERT INTO test_table (Product_Group,PID,PID_Name,maturityValue,AsofDate,Portfolio)
VALUES ('Invt','I.S.7','Investments',1359.3852,'10/31/2017','Passing')
INSERT INTO test_table (Product_Group,PID,PID_Name,maturityValue,AsofDate,Portfolio)
VALUES ('Asse','I.S.7','Assets',1364.3424,'10/31/2017','Holding')
INSERT INTO test_table (Product_Group,PID,PID_Name,maturityValue,AsofDate,Portfolio)
VALUES ('Forx','I.S.7','Foreign_Exchange',1331.2845,'10/31/2017','Holding')
INSERT INTO test_table (Product_Group,PID,PID_Name,maturityValue,AsofDate,Portfolio)
VALUES ('Forx','I.S.7','Foreign_Exchange',1336.1355,'10/31/2017','Holding')
INSERT INTO test_table (Product_Group,PID,PID_Name,maturityValue,AsofDate,Portfolio)
VALUES ('Forx','I.S.7','Foreign_Exchange',1341.0075,'10/31/2017','Holding')
INSERT INTO test_table (Product_Group,PID,PID_Name,maturityValue,AsofDate,Portfolio)
VALUES ('Govt','I.S.7','Government',1435.6272,'10/31/2017','Holding')
INSERT INTO test_table (Product_Group,PID,PID_Name,maturityValue,AsofDate,Portfolio)
VALUES ('Govt','I.S.7','Government',1518.0464,'10/31/2017','Passing')
Bevor:
Product_Group PID PID_Name maturityValue AsofDate Portfolio
Invt I.B.7 Investments 1258.69 9/29/2017 Holding
Asst A.Q.7 Assets 1263.28 9/29/2017 Holding
Forx X.S.7 Foreign_Exchange 1267.89 9/29/2017 Holding
Forx X.S.7 Foreign_Exchange 1272.51 9/29/2017 Holding
Forx X.S.7 Foreign_Exchange 1277.15 9/29/2017 Holding
Govt G.G.7 Government 1281.81 9/29/2017 Passing
Govt G.G.7 Government 1286.48 9/29/2017 Passing
Invt I.B.7 Investments 1359.3852 10/31/2017 Passing
Asst A.Q.7 Assets 1364.3424 10/31/2017 Holding
Forx X.S.7 Foreign_Exchange 1331.2845 10/31/2017 Holding
Forx X.S.7 Foreign_Exchange 1336.1355 10/31/2017 Holding
Forx X.S.7 Foreign_Exchange 1341.0075 10/31/2017 Holding
Govt G.G.7 Government 1435.6272 10/31/2017 Holding
Govt G.G.7 Government 1518.0464 10/31/2017 Passing
Nach:
Bilder sind nicht hilfreich für T-SQL-Fragen (besonders wenn sie nur Spaltenüberschriften und keine Daten enthalten). Stattdessen können Sie Ihre DDL- und Beispieldaten zusammen mit der erwarteten Ausgabe, die Sie erreichen möchten, posten. Bei einer Schätzung werden Sie wahrscheinlich ein 'CTE' und' ROW_NUMBER() 'verwenden müssen. Dann 'LEFT JOIN' eine Zeile auf die nächste/vorherige, basierend auf dem Wert Ihrer Zeilennummerierung. Wenn Sie SQL Server 2012+ verwenden, können Sie 'LEAD' /' LAG' verwenden. – Larnu
Sie müssen mit einigen Details beginnen. http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –