fieldname in union query

Status
Niet open voor verdere reacties.

patricw

Gebruiker
Lid geworden
27 mei 2009
Berichten
229
Beste allemaal,

Ik heb onderstaande query die van verschillende tabellen het totaal aantal records telt.

Code:
SELECT Count([TEP shipment].[Label lot]) AS [Aantal records]
FROM [TEP shipment];
Union
SELECT Count([TEP label lots].[Label lot])
FROM [TEP label lots];
Union
SELECT Count([Twistar lots].[Twistar™ lot])
FROM [Twistar lots];
Union
SELECT Count([Twistar inspection lots].[Twistar™])
FROM [Twistar inspection lots];
Union
SELECT Count([Twistar production data].[Lotnummer])
FROM [Twistar production data];
Union
SELECT Count([Projects].[Code1])
FROM [Projects];
Union
SELECT Count([Customers].[Customers])
FROM [Customers];
Union
SELECT Count([TAC lots].[TAC lot])
FROM [TAC lots];
Union
SELECT Count([HC TAC lots].[HC lot])
FROM [HC TAC lots];
Union
SELECT Count([HC TAC lots].[HC lot])
FROM [HC TAC lots];
UNION SELECT Count([Twistar specifications].[Twistar™ specifications])
FROM [Twistar specifications];

Nu wil ik graag in de resulterende tabel voor het aantal de bijbehorende omschrijving, dus een extra kolom met "Customers" en daarachter het aantal (dat heb ik dus al).

Hoe kan ik dit voor elkaar krijgen?

groet, Patric
 
Laatst bewerkt:
En wat moet daar in staan?
 
Sorry, ikwas niet helemaal duidelijk (vakantie modus).

Het record bestaat nu uit alleen de telling, maar daar moet bij komen de naam van de tabel waarvan de records worden geteld. Dus de extra kolom heeft dan als kolomkop "Tabel".

Het resultaat is nu:

Picture1.png

Er moet dus een extra kolom voor met als resultaat per record de naam van de tabel waar de telling uit komt.
 
Krijg je zoiets:
Code:
SELECT Count([ID]) AS [Aantal records], "TEP shipment" AS Tabelnaam] FROM [TEP shipment]
Union
SELECT Count([ID]), "TEP label lots" FROM [TEP label lots]
Union
SELECT Count([ID]), "Twistar lots" FROM [Twistar lots]
Union
SELECT Count([ID]), "Twistar inspection lots" FROM [Twistar inspection lots]
Union
SELECT Count([ID]), "Twistar production data" FROM [Twistar production data]
Union
SELECT Count([ID]), "Projects" FROM [Projects]
Union
SELECT Count([ID]), "Customers" AS FROM [Customers]
Union
SELECT Count([ID]), "TAC lots" FROM [TAC lots]
Union
SELECT Count([ID]), "HC TAC lots" FROM [HC TAC lots]
Union
SELECT Count([ID]), "HC TAC lots" FROM [HC TAC lots]
UNION 
SELECT Count([ID]), "Twistar specifications" FROM [Twistar specifications]
Ik vermoed dat je niet je sleutelvelden telt; zou ik dus altijd wel doen. Count geeft alleen bij velden waarvan je zeker weet dat het gevuld is het juiste aantal. Een sleutelveld is verplicht, en daarom het beste geschikt. Een Ja/Nee veld kan overigens meestal ook wel, want dat bevat de waarden 0 of -1, en is dus ook zelden leeg. Een veld als [Tussenvoegsel] is dus totaal ongeschikt. Aangezien het geen ene moer uitmaakt welk veld je telt, is het veiligste veld (dus: sleutelveld) de beste optie.
Of:
Code:
SELECT Count([1]) AS [Aantal records], "TEP shipment" AS Tabelnaam] FROM [TEP shipment]
Union
SELECT Count([1]), "TEP label lots" FROM [TEP label lots]
etc.
 
Bedankt Michel, werkt prima (maar dat wist je zelf natuurlijk wel).

Ik tel overigens wel sleutelvelden/verplichte velden.

groet, Patric
 
Een veldnaam als "[Twistar™ specifications]" vind ik behoorlijk vaag, en zou ik zeker niet als (verplicht of)sleutelveld aanmerken :). Zolang je maar weet wat je doet ;).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan