2016-09-18 4 views
0

Ich verwende die folgende Abfrage, um einige Informationen aus 2 Tabellen zu ziehen, um ein Dropdown-Feld auf meiner Website mit "Category" -Werten zu füllen.TSQL Union alle - Fehler

Ich erhalte den folgenden Fehler.

Alle Abfragen, die mit einem UNION-, INTERSECT- oder EXCEPT-Operator kombiniert werden, müssen die gleiche Anzahl von Ausdrücken in ihren Ziellisten enthalten.

Dies ist meine Frage:

select 'Choose a Category', 'All' 

Union All 

select distinct CategoryName 
from BND_Listing 
inner join BND_listingCategories on BND_Listing.CatID = BND_ListingCategories.CatID 

Ich vermute, dass es etwas mit der inneren zu tun hat, beitreten?

Jeder Eingang geschätzt!

+2

Sie versuchen, eine Abfrage zur Vereinigung, die zwei Spalten zurückgibt ('‚eine Kategorie auswählen‘, 'All'') mit einer anderen als nur einer zurückgibt (' CategoryName') . – sstan

Antwort

2
select 'Choose a Category' as CategoryName 
Union All 
select 'All' as CategoryName 
Union All 
select distinct CategoryName from BND_Listing 
inner join BND_listingCategories 
on BND_Listing.CatID=BND_ListingCategories.CatID 

oder

select 'Choose a Category' as CategoryName, 'All' as Value 
Union All 
select distinct CategoryName, CategoryName as Value from BND_Listing 
inner join BND_listingCategories 
on BND_Listing.CatID=BND_ListingCategories.CatID 
+0

Danke für die schnelle Antwort Markus! – UserSN

+0

Was ist, wenn ich möchte, dass der Text als "Wählen Sie eine Kategorie" angezeigt wird, aber der Wert "Alle"? – UserSN

+0

Dann müssen Sie auch einen Wert zur Auswahl unten hinzufügen. Alle Abfragen, die mit "Union All" kombiniert werden, müssen die gleiche Anzahl von Spalten und Datentypen aufweisen. –