Heute ist es wieder passiert . Wir waren in drei verschiedenen Lebensmittelgeschäften und haben es trotzdem geschafft, einige der Sachen, die wir brauchen, nicht zu kaufen. Ich bin es leid, nach Hause zu kommen, nur um zu erkennen, dass ich wieder raus muss, also muss ich die Verfolgung dessen, was wir als Familie konsumieren, so weit wie möglich automatisieren.
Ich suche nach Software, die unter Windows 7 oder höher läuft und die folgende Dinge tut:
Im Grunde ein System, das unseren Verbrauch im Laufe der Zeit lernt, basierend darauf, was wir kaufen und wie oft wir es kaufen.
Schön zu haben:
Ich hätte nichts gegen etwas, das in eine Art Webdienst eingebunden ist, aber ich hoffe wirklich auf eine (meistens) eigenständige Desktop- / Telefon-App. Damit meine ich, dass ich mit der Software ausschließlich auf meinem Desktop oder mobilen Gerät interagieren möchte, nicht über eine Webschnittstelle, die mit dem verbunden ist, was die Informationen zwischen meinen Geräten teilt.
Gibt es so etwas? Können Sie mir helfen, nicht drei Wochen hintereinander eine Wanne Butter zu kaufen, was zu einem Überschuss führt, für dessen Verbrauch wir Monate gebraucht haben?
Nachdem ich ernsthaft gelacht habe, muss ich feststellen, dass Ihre Frage ziemlich vernünftig ist! Ich weiß nicht wirklich, ob es eine solche App gibt, aber Sie können Excel so einrichten, dass dies für Sie erledigt wird, oder sogar eine BI-Funktion wie Tableau Public verwenden , die absolut kostenlos ist. Sie können dann verschiedene Kategorien einrichten, aber Sie müssen eine Weile investieren, um Ihre Einkaufsinformationen für einen Monat einzugeben.
Tableau ermöglicht Prognosen, sodass Sie grundsätzlich die Möglichkeit haben, herauszufinden (anhand Ihrer Lebensmitteleinkäufe für 3 Monate), wie viel Sie von jedem Produkt benötigen werden. Ich weiß jedoch nicht wirklich, wie ich das Problem lösen soll, wenn eine Software vorschlägt, was Sie möglicherweise kaufen müssen.
Aber Ihre Frage ist in der Tat eine großartige Geschäftsidee ...
Du gehst das falsch an. Anstatt eine Kauferinnerung zu automatisieren, lassen Sie sie einfach regelmäßig zu Ihnen nach Hause liefern.
Das erste, was mir in den Sinn kommt, ist Alice.com, aber diese Seite wird gerade neu gestartet.
Die nächste Alternative wäre Amazon Subscribe and Save http://amzn.to/1o01r0X
Abgesehen von Müllsäcken wäre es schön gewesen, wenn RFID-UPC-Tags abgehoben wären. Dann könnten Sie Ihre Schränke fragen, wann Sie etwas hineingelegt haben, und zumindest raten, ob sie benötigt werden (oder irgendwie programmgesteuert).
Ich gehe hier davon aus, dass die meisten Leute nicht bereit sind, alles, was sie kaufen, in eine Art Tracking-App zu scannen.
Sie könnten auch Lesegeräte auf Mülltonnen haben, damit Sie wissen, dass Sie raus sind, wenn Sie die Schachtel wegwerfen.
NUR ein Teil der Antwort:
Sie müssen noch die Rohdaten in die Datenbank holen und das errechnete Wiedereinlagerungsdatum in einen Kalender übertragen.
SELECT "Description", DATEDIFF( 'dd', MIN( "Posting Date" ), MAX( "Posting Date" ) ) / COUNT( * ) AS "Days between purchase", SUM( "Amount" ) / COUNT( * ) AS "Average Price", DATEDIFF( 'dd', MIN( "Posting Date" ), MAX( "Posting Date" ) ) /count(*) as "Average Days Item Lasts", DATEDIFF('dd',MAX( "Posting Date" ),NOW()) as "Last Purchase # Days ago" FROM "credit" GROUP BY "Description"
Ich habe das in LibreOffice zum Laufen gebracht. Leider unterstützt Libreoffice date_add nicht, daher konnte ich Ihnen kein Nachbestelldatum nennen.
Hier ist die bessere Version für MySQL, getestet
SELECT Description, DATEDIFF( MAX( `Posting Date` ), MIN( `Posting Date` ) ) / COUNT( * ) AS `Order every # Days`, SUM( `Amount` ) / COUNT( * ) AS `Average Price`, MAX( `Posting Date` ) as `Last Purchased` ,DATE_ADD( MAX( `Posting Date` ), INTERVAL DATEDIFF( MAX( `Posting Date` ), MIN( `Posting Date` ) ) / COUNT( * ) DAY ) as `You will run out on` FROM `credit` GROUP BY `Description`;
Beispielergebnisse (mysql):
Description Order every # Days Average Price Last Purchased You will run out on
Item 24 67.2857 29.8571428571429 06/08/16 12:00 AM 08/14/16 12:00 AM
Item 4 113 90 04/06/16 12:00 AM 07/28/16 12:00 AM
Item 57 37.0909 152.545454545455 06/21/16 12:00 AM 07/28/16 12:00 AM
Item 9 55.5556 54.8888888888889 05/27/16 12:00 AM 07/22/16 12:00 AM
Item 28 18.9286 127.035714285714 07/03/16 12:00 AM 07/22/16 12:00 AM
Item 42 16.5882 11.7058823529412 07/05/16 12:00 AM 07/22/16 12:00 AM
Item 35 10.5385 21.0192307692308 07/06/16 12:00 AM 07/17/16 12:00 AM
Item 12 12.6098 65.2439024390244 07/03/16 12:00 AM 07/16/16 12:00 AM
Item 25 22.2917 6.66666666666667 06/22/16 12:00 AM 07/14/16 12:00 AM
Item 38 9.4038 29.3846153846154 07/03/16 12:00 AM 07/12/16 12:00 AM
Item 3 17.5667 35.0333333333333 06/22/16 12:00 AM 07/10/16 12:00 AM
Order by hinzugefügt, also besser bestellt, und die Liste für 7 Tage gekürzt, um eine Woche lang einzukaufen.
SELECT `Category`, DATEDIFF( MAX( `Posting Date` ), MIN( `Posting Date` ) ) / COUNT( * ) AS `Order every # Days`, SUM( `Amount` ) / COUNT( * ) AS `Average Price`, MAX( `Posting Date` ) as `Last Purchased` ,DATE_ADD( MAX( `Posting Date` ), INTERVAL DATEDIFF( MAX( `Posting Date` ), MIN( `Posting Date` ) ) / COUNT( * ) DAY ) as `You will run out on`
FROM `credit`
GROUP BY `Category`
HAVING `You will run out on` < (NOW() + INTERVAL 7 DAY)
ORDER by `You will run out on` DESC;
Wenn Sie eine Datenbank in Microsoft Access oder Libre Office Base erstellen, sollte die obige select-Anweisung die meiste Arbeit erledigen. Ich habe dies zum Testen in einer MySQL-Datenbank gemacht, aber abgesehen von geringfügigen Änderungen sollte es funktionieren.
So erstellen Sie eine Tabelle: mysql
MariaDB [test]> describe credit;
+----------------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------------+--------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| Originating Account Number | varchar(100) | YES | | NULL | |
| Posting Date | datetime | YES | | NULL | |
| Trans Date | datetime | YES | | NULL | |
| Type | varchar(100) | YES | | NULL | |
| Category | varchar(100) | YES | | NULL | |
| Merchant Name | varchar(100) | YES | | NULL | |
| Merchant City | varchar(100) | YES | | NULL | |
| Merchant State | varchar(100) | YES | | NULL | |
| Description | varchar(100) | YES | | NULL | |
| Transaction Type | varchar(100) | YES | | NULL | |
| Amount | double | YES | | NULL | |
| Reference Number | varchar(100) | YES | | NULL | |
+----------------------------+--------------+------+-----+---------+----------------+
13 rows in set (0.00 sec)
Benutzer111
Tim Post
Seth
Anonymer Pinguin
Tim Post
Kybernard
Kybernard
Days between purchase
, sum(price)/count(*) asAverage Price
,(max(timestamp)+Days between purchase
) asRestock on
FROMulog2
wobei item="cheeze" und timestamp ZWISCHEN CAST('2015-01-01' AS DATE) UND CAST('2015-12-31' AS DATE); Sie können den Zeitstempel dazwischen weglassen, wenn Sie keinen jährlichen Bericht wünschen, sondern stattdessen einen "Allzeitbericht".