Ich habe unter einer einzigen Tabelle mit 5 Zeilen und 4 Spalten, wollte ich das Ergebnis von 8 Spalten haben, versuchte eine innere beitreten auf der gleichen Tabelle, aber nicht das erwartete Ergebnis, ist da eine Möglichkeit, ausgewählte Datensätze aus der folgenden Abfrageergebnismenge zu erhalten?einzelne Tabelle vier Spalten in 8 Spalten
Declare @CustomerData Table (CustomerNum int,
VehicleName Char(20),
Vehiclepurchaseyear char(4),
Vehicleprice char(10))
INSERT INTO @CustomerData(CustomerNum,VehicleName,Vehiclepurchaseyear,Vehicleprice)
VALUES (1000,'Toyoto Camry','2012',' 14500'),
(1000,'Nissan Ultima','2014','12000'),
(1500,'Honda Accord','2012','15000'),
(1500,'Honda Civic','2012','13000'),
(1800,'Toyoto RAV4','2012','16500')
SELECT X.customerNum as CustomerNum
,X.VehicleName as Vehiclename1
,X.Vehiclepurchaseyear as vehiclepurchaseyear1
,X.Vehicleprice as vehicleprice1
,Y.VehicleName as Vehiclename2
,Y.Vehiclepurchaseyear as vehiclepurchaseyear2
,Y.Vehicleprice as vehicleprice2
FROM
(SELECT CustomerNum,
VehicleName,
Vehiclepurchaseyear,
Vehicleprice
FROM @Customerdata) X
INNER JOIN
(SELECT CustomerNum,
VehicleName,
Vehiclepurchaseyear,
Vehicleprice
FROM @CustomerData) Y
on X.CustomerNum = Y.customernum
Ergebnis nicht zu erwarten:
1000 Toyoto Camry 2012 14500 Toyoto Camry 2012 14500
1000 Toyoto Camry 2012 14500 Nissan Ultima 2014 12000
1000 Nissan Ultima 2014 12000 Toyoto Camry 2012 14500
1000 Nissan Ultima 2014 12000 Nissan Ultima 2014 12000
1500 Honda Accord 2012 15000 Honda Accord 2012 15000
1500 Honda Accord 2012 15000 Honda Civic 2012 13000
1500 Honda Civic 2012 13000 Honda Accord 2012 15000
1500 Honda Civic 2012 13000 Honda Civic 2012 13000
1800 Toyoto RAV4 2012 16500 Toyoto RAV4 2012 16500
erwartetes Ergebnis:
1000 Toyoto Camry 2012 14500 Nissan Ultima 2014 12000
1500 Honda Civic 2012 13000 Honda Accord 2012 15000
1800 Toyoto RAV4 2012
Markieren Sie Ihre Frage mit der Datenbank, die Sie verwenden. –
Formatieren Sie richtig. Es ist sehr schwer zu lesen. – Eric