2012-11-13 2 views
0

J'ai à peu près cloué mon projet pour le travail maintenant après avoir tourné en rond et se terminant où mon incursion dans Google Maps et les exemples de table Fusion ont tous commencé, avec Derek Eder's Searchable Template examples. Mon défi réside dans les cases à cocher et, plus important encore, dans les données de la table de fusion et de la requête. L'exemple de Derek (voir lien) repose uniquement sur une colonne nommée 'Type' qui contient un seul numérique dans une ligne donnée. Maintenant, j'ai la même colonne mais où mon défi réside est qu'il peut contenir plus d'un seul numérique. Donc '1,3' ou '2,3' ou '1,2,4,5'. Dans mon cas, indiquant que le magasin vend ces types de produits où 1 pourrait être des sacs, 3 pourraient être des raquettes de tennis etc. Maintenant, je n'ai pas été en mesure de clouer cette requête et le code ce soir et le temps presse donc je devais venir à StackOverflow et vous demander de l'aide. Pour l'instant, cela ne fait aucune différence si j'écarte ces valeurs ou si je les sépare par une virgule ou même si je change le type de colonne dans les tables de fusion en texte d'être numérique et émet une sorte de requête LIKE. D'une mise en page de données, il est relativement simple de les afficher en colonnes individuelles avec un 1 ou un 0, mais je suivais strictement les exemples de Derek car il avait même ajouté des commentaires dans le code.Google Fusion Tables challange avec plusieurs valeurs par cellule

Eh bien de toute façon, voici en espérant que vous l'avez déjà cloué. Faites-moi savoir si vous avez besoin d'un lien, mais pour le moment, je n'ai presque pas quitté l'exemple de Derek, même si je n'aurais pas besoin de faire ça. Merci d'avance, Richard.


merci pour la réponse. La base de données dans ce cas est une feuille de calcul standard importée dans Fusion Tables. J'apprécie ce que vous dites mais ce n'est pas une option car c'est Excel dont nous parlons ici et le dossier est transmis d'un département de marketing.

Le format actuel de la table de fusion que j'ai est le long de ces lignes

accountid | add1 | add2 | add3 | poastcode | prodtype1 | prodtype2 | prodtype3 |  prodtype4 
========================================================================================== 
123456  blah blah blah SG18 1DF  1    1   0   0 
234567  blah blah blah SG18 2DF  0    0   1   0 

je voyais que si l'on pourrait traduire ci-dessus pour travailler avec l'exemple de modèle de recherche de Derek Eder en utilisant ses instructions de filtrage spécifiques. Donc, le dessous était une idée.

accountid | add1 | add2 | add3 | poastcode | type | 
=================================================== 
123456  blah blah blah SG18 1DF 1,2,4 

ou si cela ne fonctionne pas,

accountid | add1 | add2 | add3 | poastcode | type | 
=================================================== 
123456  blah blah blah SG18 1DF 1 2 4 

J'ai de grandes inquiétudes concernant la mise en œuvre de votre suggestion car il est au-delà de la portée de ce projet réaliste et ne serait pas aussi la table jointe il suffit d'augmenter la nombre total d'enregistrements augmentant ainsi faussement le nombre d'enregistrements. Je ne veux pas résoudre un défi et en créer un autre.

J'espère que vous apprécierez où je suis. Je dois juste garder cela dans le monde de la feuille de calcul.

Merci, Richard

+0

Je vois ce que vous voulez dire. Si vous avez déjà plusieurs colonnes contenant ces données (prodtype1, prodtype2, ...), vous pouvez simplement les inclure dans votre clause 'WHERE'. Donc, si les types 1 et 3 sont sélectionnés, vous utiliserez une clause where comme celle-ci: 'WHERE prodtype1 = 1 and prodtype3 = 1' – Odi

Répondre

2

Si vous regardez votre problème du point de vue base de données, vous ne devriez pas utiliser une seule cellule pour contenir plusieurs valeurs, car il ne vous donne des maux de tête et des troubles. Parfois, cela peut être une bonne idée d'augmenter la performance, mais c'est seulement le cas si vous savez ce que vous faites :-)

Votre problème pourrait être facilement résolu avec deux tables. Votre première table contient vos données actuelles et la seconde est utilisée pour mapper vos données sur un ou plusieurs types.

  1. données

    data_id | data | location 
    =========================== 
        1 | xy | somethere 
        2 | az | moon 
        31 | bla | elm street 
    
  2. Cartographie des types

    data_id | type 
    ================ 
        1 | 1 
        1 | 3 
        1 | 4 
        31 | 2 
    
  3. Ensuite, vous pouvez JOIN the two tables pour obtenir le résultat souhaité:

    data_id | data | location | type 
    =================================== 
        1 | xy | somethere | 1 
        1 | xy | somethere | 3 
        1 | xy | somethere | 4 
        2 | az | moon  | 
        31 | bla | elm street | 2 
    

Dans Google Fusion Tables, vous pouvez join two tables by merging them, ce qui équivaut à LEFT OUTER JOIN. Après cela, vous avez à nouveau le ancien paramètre avec un seul type par cellule, mais vous êtes en mesure d'exprimer qu'une ligne a plusieurs types.

Questions connexes