2010-10-20 5 views
0
SELECT * FROM TABLE1 
 
ID  Name 
1  SOF 
2  USER 

Je veux requête qui peut un ou deux ou quatre fois .... ID = 1 dans la ligne commeComment dupliquer la ligne dans le résultat de requêtes SQL

Quelle sera la requête de cela dans Ms.Access?

 
ID  Name 
1  SOF 
1  SOF 
1  SOF 
2  USER 
+6

Si vous pouvez expliquer la logique derrière l'exigence, peut-être une solution sera plus facile à trouver. – Oded

+0

Il est également facile de dupliquer des lignes du côté client. – Thilo

+0

SELECT Badges. *, BadgeTypes. *, Pays. * FROM (Badges INNER JOIN BadgeTypes ON Badges.TypeID = BadgeTypes.TypeID) INNER JOIN Pays ON Badges.CountryID = Pays.CountryID order Par PName –

Répondre

1

L'exemple suivant utilise la syntaxe CTE de SQL Server. En l'état, le @ID est sélectionné @Count fois, tous les autres enregistrements sont sélectionnés une fois. Il serait assez facile de l'étendre à n'importe quel compte pour n'importe quel ID que vous aimez.

Setup

DECLARE @Table TABLE (ID INTEGER, Name VARCHAR(32)) 
DECLARE @Count INTEGER 
DECLARE @ID INTEGER 

SET @Count = 3 
SET @ID = 1 

INSERT INTO @Table 
      SELECT 1, 'SOF' 
UNION ALL SELECT 2, 'USER' 

instruction SQL

;WITH Multiple AS (
    SELECT ID, Name, cnt = 1 
    FROM @Table 
    WHERE ID = @ID 
    UNION ALL 
    SELECT ID, Name, cnt = cnt + 1 
    FROM multiple 
    WHERE cnt < @Count 
) 
SELECT ID, Name 
FROM Multiple 
UNION ALL 
SELECT ID, Name 
FROM @Table 
WHERE ID <> @ID 
+0

Rappelez-vous que j'utilise MS Access –

+1

Comment je peux. Vous venez juste d'ajouter cette balise?! –

+0

Je suis désolé j'ai oublié lieven j'ai ajouté tag ms-access maintenant –

0

Cette solution dépend de la présence d'un champ de LabelCount (colonne) avec le nombre requis d'étiquettes, et une table Coiunter, avec un champ, Num, qui contient des entiers de 1 au nombre maximal d'étiquettes requis:

SELECT Id, [Name] 
FROM Table1, [Counter] 
WHERE Counter.Num<=[LabelCount] 
Questions connexes