0
votes

Utilisez des cellules d'information au lieu des têtes de colonne

J'ai eu du mal à signaler des informations et une vue de bâtiment Mes informations sur la table sont les suivantes

Base de données

Table Table Stu xxx

Table Table Etudestatus xxx

Orientation de la table xxx

[la sortie que je veux enfin] xxx

par quelle requête ?

s'il vous plaît aider ...! Merci


4 commentaires

C'est un pivot.


Les questions sont meilleures quand elles n'utilisent pas d'images mais utilisent plutôt du texte formaté. Non seulement ils sont plus faciles à lire, mais les gens peuvent copier et coller la requête et les données pour essayer de vous aider.


Je l'ai édité ...


Je l'ai édité ...


3 Réponses :


0
votes

Essayez-le. Mais d'abord, retirez d'abord l'espace vide de gauche et droit du côté de l'étude.

select isnull([Studying],0)+isnull([Cancel],0)+isnull([Laying off],0)   [All],  Orientation_Name,[Studying],[Cancel],[Laying off] 
from
(
select s.id,o.Name Orientation_Name ,ss.Name  StudyStatus_Name
 from Stu s inner join StudyStatus ss  on s.ID_StudyStatus=ss.ID inner join Orientation O on o.Id=s.ID_Orientation)as st
 pivot
 (
 count(id)
 FOR StudyStatus_Name   IN ([Studying],[Cancel],[laying off])
) as PV


5 commentaires

Laquelle de vos 2 réponses répond réellement à la question? Veuillez supprimer celui qui ne le fait pas.


Celui-ci est réel


Alors s'il vous plaît supprimer vos autres réponses.


Je l'ai supprimé mais ça n'a pas fonctionné. Pouvez-vous me donner une image ou un code plus clair que je peux mieux comprendre? Parce que j'ai dit que j'étais nouveau à SQL.


Aider bro @dalek



0
votes

Vous pouvez aller pour la somme conditionnelle et obtenir les résultats.

SELECT o.name,   
       COUNT(*) AS All, 
       SUM(CASE WHEN ss.Name = 'Studying' THEN 1 ELSE 0 END) AS Studying,   
       SUM(CASE WHEN ss.Name = 'Cancel' THEN 1 ELSE 0 END) AS cancel,
       SUM(CASE WHEN ss.Name = 'Laying Off' THEN 1 ELSE 0 END) AS LayingOff
FROM Orientation as o
inner join Stu as s
on s.id_orientation = s.id
inner join StudyStatus AS ss
on ss.id = s.id_StudyStatus
GROUP BY o.name


0 commentaires

0
votes
select isnull([Studying], 0) + isnull([Cancel], 0) + isnull([laying off], 0) [All],
    Orientation_Name,
    [Studying],
    [Cancel],
    [laying off]
from (
        select s.id,
            o.name Orientation_Name,
            ss.name StudyStatus_Name
        from Stu s
            inner join StudyStatus ss on ss.id = s.id_StudyStatus
            inner join Orientation o on o.id = s.id_Orientation
    ) as st pivot (
        count(id) FOR StudyStatus_Name IN ([Studying], [Cancel], [laying off])
    ) as PV

  Pay attention to uppercase and lowercase letters Move Inner Join
  
  Thanks to @LiaqatKundi and @DaleK

0 commentaires