J'ai une base de données qui a une table de commandes et une table d'inventaire.
La table des éléments de commande a une mise en page de 1 enregistrement par 1, donc si une personne passe une commande pour 7 'ABC et 4' XYZ, j'obtiens 11 enregistrements dans la table.Aide de requête SQL pour les quantités de file d'attente
id, item, qtyNum 01 ABC 1 02 ABC 2 03 ABC 3 04 ABC 4 05 ABC 5 06 ABC 6 07 ABC 7 08 XYZ 1 09 XYZ 2 10 XYZ 3 11 XYZ 4
Le tableau d'inventaire a une quantité/mise en page par élément-lieu, donc je peux avoir 20 quelque chose en stock, mais il peut être (dans le pire des cas) dans 20 endroits différents. Ainsi pour notre exemple, je pourrais avoir l'inventaire suivant:
Qty, Item, Loc, Date 3 'ABC' in Location L1 with date 1990 2 'ABC' in Location L2 with date 1992 5 'ABC' in Location L3 with date 2003 4 'ABC' in Location LH with date 2004 1 'XYZ' in Location L4 with date 1990 2 'XYZ' in Location L5 with date 1993 9 'XYZ' in Location L6 with date 2001 2 'XYZ' in Location LJ with date 2004
* Les H et J n'ont aucune signification spéciale! Juste conduire la maison point qu'ils sont les plus récents
Le jeu de résultats doit tirer le plus grand nombre possible des lieux les plus anciens d'abord, donc pour cet exemple, je finis avec le texte suivant: « file d'attente choisissez »:
Pick 3 'ABC' from L1 Pick 2 'ABC' from L2 Pick 2 'ABC' from L3 Pick 1 'XYZ' from L4 Pick 2 'XYZ' from L5 Pick 1 'XYZ' from L6
J'ai une solution qui implique beaucoup de vues qui sont jointes à plusieurs reprises avec des jointures externes et des trucs fous comme ça et je suis juste curieux de savoir s'il existe une solution simple/élégante pour ce problème? Je pourrais le faire dans le code sans problème, mais en SQL, je ne suis pas un gourou.
MSSQL 2008
Dans votre exemple de la table order-items, le qtyNum devrait-il augmenter chaque rangée, ou devrait-il être 1 dans chaque rangée. S'ils placent une commande pour 7 articles d'ABC, il semblerait que si vous avez pris le tableau, 28 serait la quantité. Ou est-ce que je ne comprends pas le point de la colonne qtyNum? –
Il suffit de données supplémentaires pour mentionner la commande des articles. Son id-article 10 est la troisième quantité pour l'article 'XYZ' sur cet ordre. Pour toutes fins utiles, peut probablement simplement ignorer qtyNum – Hatch