SELECT
a.bid, a.time checkin, ISNULL(b.time, '') checkout
FROM
myTable a
LEFT JOIN
myTable b ON a.bid = b.bid AND b.type = 'Check Out'
WHERE
a.type = 'Check In'
ORDER BY
a.time
EDIT
En réponse à votre commentaire, car il y a plusieurs dossiers du même bid
et vous voulez seulement un enregistrement par bid
dans votre sortie, vous devez spécifier quels enregistrements vous voulez dans votre sortie. Quand il y en a plus d'un, comment décidez-vous quelle valeur choisir? Si vous voulez toujours plus tôt checkin et la dernière commande, vous pouvez faire quelque chose comme ceci:
SELECT
a.bid,
MIN(a.time) checkin,
ISNULL((SELECT
MAX(time)
FROM
myTable
WHERE
bid = a.bid
AND type = 'Check Out'), '') checkout
FROM
myTable a
WHERE
a.type = 'Check In'
GROUP BY
a.bid
Si ce n'est pas exactement ce que vous voulez; ajuster l'utilisation de MIN
et MAX
pour répondre à vos besoins.
De quelles valeurs avez-vous besoin dans les colonnes 'checkin' et 'checkout'? Essayez d'utiliser une clause GROUP BY pour la colonne "enchère". – Dor
Pourquoi la caisse de l'offre 6 aide 12 au lieu de 13? –
S'il vous plaît donner plus d'informations afin que les gens peuvent vous aider. Quelles ** règles ** sont utilisées pour former votre résultat d'échantillon? Si vous "avez oublié de mentionner l'enchère 3, 4", éditez votre question pour les montrer! En l'état, votre question est tellement vague que toute réponse donnée sera purement une conjecture. Sans mentionner que vous pouvez obtenir une réponse qui a l'air juste, mais ne correspond pas vraiment à l'exigence. Si ** vous ** ne comprenez pas suffisamment l'exigence pour l'expliquer, comment allez-vous confirmer si une réponse donnée est correcte? S'il vous plait, réparez votre question, ou cela pourrait aussi bien être marqué, car actuellement c'est inutile! –