Je veux faire un compte (*) du nombre d'une base de données DB2. La requête de base est la suivante:
select count(*), SUBSTR("Request_Detail",LOCATE('/',"Request_Detail")+1,LOCATE('/',"Request_Detail",LOCATE('/',"Request_Detail")+1)-LOCATE('/',"Request_Detail")) from "Request_Analisys" WHERE "Sample_Date_and_Time">=1200323230000000 and "Sample_Date_and_Time"<1200332300000000 and "Request_Detail" <> '[Summary]' and "Request_Detail" not like 'WS:%'
3 Réponses :
Quel Si vous voulez plusieurs lignes, avec un compte pour chaque substrateur trouvé, vous devez demande_detail code> Substr de la ligne Pensez-vous que cela montre après le compte?
Si vous comptez les lignes, l'ensemble de résultats sera une seule ligne et utiliser toutes les colonnes de cela n'a aucun sens. P>
groupe par code> ce substr. p>
True, mais si j'ajoute le groupe par clause, j'obtiens l'erreur suivante: [Code: -138, SQL State: 22011] La déclaration n'a pas été exécutée car un argument numérique d'une fonction scalaire est hors limites. SQLCode = -138 , Sqlstate = 22011, pilote = 4.22.29
Ceci peut fonctionner ... mais sinon cela devrait .. p>
Je vous suggère d'utiliser par exemple p> retourne p> donc, vous pouvez alors faire ce p> par exemple p> p> regexp_extract code> pour choisir ce que vous voulez sortir de votre colonne "Demande_Detail". Ceci est plus flexible que d'utiliser
substr code> et
localiser code>, et évitera l'instruction
non exécutée car un argument numérique d'une fonction scalaire est hors limites. / code> erreur
Sélectionnez Count (*) à partir de (votre requête de base) code>. Si ce n'est pas vous le souhaitez, fournissez ensuite un échantillon du jeu de résultats renvoyé par votre requête de base et le résultat que vous souhaitez obtenir.