web-dev-qa-db-fra.com

Créer un graphique de traventaLot à partir de données RSForm Pro via une requête pivot

J'essaie d'extraire des données RSform Pro Form de la base de données pour créer des graphiques de travenot.

Il existe un champ sur la forme appelée "résolue" à laquelle les utilisateurs répondent "oui ou non". Je voudrais ajouter tout "oui" et tout "non" et ajouter la quantité de "oui" et "non" séparément pour générer un graphique à pizza. Cependant, lorsque j'entre le code ci-dessous, je reçois une erreur et il ne génère pas le graphique:

Erreur de tracé: Terrain 1: colonne inconnue 'Oui "dans" Liste de champ "

Le code que j'essaie est de:

SELECT
    FieldName,
    SUM(Sim) AS Sim,
    SUM(Não) AS Não
FROM (
  SELECT
      MAX(IF(FieldName = 'FIELDNAME', FieldValue, NULL)) AS FieldName,
      MAX(IF(FieldName = 'FIELDVALUE' AND FieldValue = 'Não', 1, 0)) AS Nãoo,
      MAX(IF(FieldName = 'FIELDVALUE' AND FieldValue = 'Sim', 1, 0)) AS Simm
  FROM r4l7i_rsform_submission_values
  WHERE FormId = 4
  GROUP BY SubmissionId
  HAVING MAX(IF(FieldName = 'EXITDATE', FieldValue, NULL)) = ''
) DerivedTable
GROUP BY FieldName
ORDER BY FieldName, Sim, Não

enter image description here

1
dind F

On dirait que vous avez trouvé les pages pivot sur JSE - bien fait. De plus, votre tentative de codage est très proche - il vous suffit de créer des lignes à deux colonnes pour la traventaLot.

Vous n'avez pas fourni de données sur la base de données réalistes, je devais donc vous moquer de mon propre ensemble de données d'échantillon minimal.

INSERT INTO `r4l7i_rsform_submission_values` (`SubmissionValueId`, `FormId`, `SubmissionId`, `FieldName`, `FieldValue`) VALUES
(101, 4, 1, 'resolvido', 'Não'),
(102, 4, 1, 'EXITDATE', ''),
(103, 4, 2, 'resolvido', 'Sim'),
(104, 4, 2, 'EXITDATE', ''),
(105, 4, 3, 'resolvido', 'Não'),
(106, 4, 3, 'EXITDATE', ''),
(107, 4, 4, 'resolvido', 'Não'),
(108, 4, 4, 'EXITDATE', '2021-06-01'),
(109, 4, 5, 'resolvido', 'Sim'),
(110, 4, 5, 'EXITDATE', ''),
(111, 4, 6, 'resolvido', 'Não'),
(112, 4, 6, 'EXITDATE', '');

Ceci a 4 valeurs Não (relatives aux soumissions: 1,3,4,6) et 2 valeurs SIM (relatives aux soumissions 2,5). Subvementid 4 est logiquement disqualifié car il a une valeur de sortie non vide.

SQL: ( https://www.db-fiddle.com/f/dfromaglpa4qfe22rhffs6/1 )

SELECT Resolvido,
       COUNT(1) AS Count
FROM (
    SELECT
        MAX(IF(FieldName = 'resolvido', FieldValue, NULL)) AS `Resolvido`
    FROM r4l7i_rsform_submission_values
    WHERE FormId = 4
    GROUP BY SubmissionId
    HAVING MAX(IF(FieldName = 'EXITDATE', FieldValue, '')) = ''
) DerivedTable
GROUP BY Resolvido

Ensemble de résultats:

| Resolvido | Count |
| --------- | ----- |
| Não       | 3     |
| Sim       | 2     |

Tableau de tarte rendu (avec et sans effet de survol):

enter image description here

0
mickmackusa