SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 07.04.2014, 17:12:16
Daktari Daktari ist offline
Anfänger
 
Registriert seit: Apr 2011
Alter: 51
Beiträge: 49
View in Procedure verwenden

Ich habe diese View die mir den Umsatz je Kundennummer je Jahr darstellt:
Code:
VIEW `abf_turnover_customer_year` AS
    select 
        `tabrechnung`.`KundennrR` AS `Kundennr`,
        sum(((`tabrechnung`.`ArtikelSumNet` + `tabrechnung`.`VerpackungR`) + `tabrechnung`.`VersicherungR`)) AS `turnover`,
        year(`tabrechnung`.`RDatum`) AS `jahr`
    from
        (`tabrechnung`
        left join `tabgutschrift` ON ((`tabgutschrift`.`GRechnungsnr` = `tabrechnung`.`Rechnungsnr`)))
    group by `tabrechnung`.`KundennrR` , year(`tabrechnung`.`RDatum`) , `tabgutschrift`.`GRechnungsnr`
    having isnull(`tabgutschrift`.`GRechnungsnr`)
    order by `tabrechnung`.`KundennrR`
und würde sie gerne in dieser Prozedur, die den Jahresumsatz in den Kundenstamm schreiben soll, verwenden:
Code:
BEGIN
UPDATE    tabkundenadressen
SET tabkundenadressen.2014 = abf_turnover_customer_year.turnover
WHERE tabkundenadressen.Kundennummer = abf_turnover_customer_year.Kundennr and abf_turnover_customer_year.jahr = 2014;
END
Die View wird korrekt ausgeführt, aber der Prozeduraufruf zeigt keine Wirkung. Wenn ich den Update-Code im Query-Browser eingebe kommt der Fehler, dass die Spalte 'Kundennr' im 'where clause' unbekannt wäre.
Greife ich falsch auf diese View zu?
Mit Zitat antworten
  #2  
Alt 08.04.2014, 12:41:03
Daktari Daktari ist offline
Anfänger
 
Registriert seit: Apr 2011
Alter: 51
Beiträge: 49
AW: View in Procedure verwenden

Ich bin hier immer noch nicht weitergekommen..

In MSSQL konnte ich auf diese Weise auf die Views zugreifen. Gibt es denn in MySQL eine andere Lösung? In den Hilfen wird immer nur von "table_reference" gesprochen, aber ob hier wirklich die Views auszuschließen sind konnte ich nirgends erkennen.
Mit Zitat antworten
  #3  
Alt 09.04.2014, 13:04:28
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: View in Procedure verwenden

Zitat:
Zitat von Daktari Beitrag anzeigen
Ich habe diese View die mir den Umsatz je Kundennummer je Jahr darstellt:
Code:
VIEW `abf_turnover_customer_year` AS
    select 
        `tabrechnung`.`KundennrR` AS `Kundennr`,

Code:
BEGIN
WHERE tabkundenadressen.Kundennummer = abf_turnover_customer_year.Kundennr and
Die View wird korrekt ausgeführt, aber der Prozeduraufruf zeigt keine Wirkung. Wenn ich den Update-Code im Query-Browser eingebe kommt der Fehler, dass die Spalte 'Kundennr' im 'where clause' unbekannt wäre.
Greife ich falsch auf diese View zu?
Du siehst den Unterschied?
Mit Zitat antworten
  #4  
Alt 09.04.2014, 15:38:06
Daktari Daktari ist offline
Anfänger
 
Registriert seit: Apr 2011
Alter: 51
Beiträge: 49
AW: View in Procedure verwenden

Die Anführungsstriche??
Mit diesen habe ich den gleichen Effekt!
Oder hab ich das Rätsel nicht gelöst?
Mit Zitat antworten
  #5  
Alt 09.04.2014, 15:55:46
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: View in Procedure verwenden

Zitat:
Zitat von pguser Beitrag anzeigen
Du siehst den Unterschied?
Wird das hier ein heiteres Tabellenraten? Kein Leser (außer dem Fragesteller) weiß, wie die CREATE TABLES der Tabellen aussehen. Ich persönlich bin zu faul dazu, die Bedeutung aller unterschiedlichen Schreibweisen von ominösen Kundenn(umme)r(R|n) abzufragen.
Mit Zitat antworten
  #6  
Alt 09.04.2014, 16:48:46
Daktari Daktari ist offline
Anfänger
 
Registriert seit: Apr 2011
Alter: 51
Beiträge: 49
AW: View in Procedure verwenden

Verstehe ich nicht... Bekommt hier nur geholfen wer seine Tabellenspalten nach Normen bezeichnet (die ich leider nicht kenne oder nicht konsequent angewendet habe)? Oder liegt in der Kundennummer schon das Problem? Ist die Fragestellung zu dürftig, werden mehr Details benötigt?
Mit Zitat antworten
  #7  
Alt 09.04.2014, 18:56:24
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: View in Procedure verwenden

Zitat:
Zitat von Daktari Beitrag anzeigen
Ist die Fragestellung zu dürftig, werden mehr Details benötigt?
Laß uns doch noch etwas herumraten, bevor Du das Rätsel auflöst, wie Deine Tabellen aussehen.
Mit Zitat antworten
  #8  
Alt 10.04.2014, 01:59:01
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: View in Procedure verwenden

Hallo,


*Brilleputz*
Zitat:
Du siehst den Unterschied?
Ich seh keinen O.o

Zitat:
Bekommt hier nur geholfen wer seine Tabellenspalten nach Normen bezeichnet
Ne aber wenn man schon 3 verschiedene Schreibweisen von Kundennummer sieht
ahnt mann schlimmes ;)


Ich glaube mal Bugs von MySQL zu View aliases gehört zu haben...
Versuch mal deinen View ohne KDNR alias ;)
HTML-Code:
SHOW CREATE VIEW
Kennste?

MfG

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
  #9  
Alt 10.04.2014, 10:06:55
Daktari Daktari ist offline
Anfänger
 
Registriert seit: Apr 2011
Alter: 51
Beiträge: 49
AW: View in Procedure verwenden

Ich wundere mich schon etwas über den Ton hier... Hab doch ganz normal gefragt, oder nicht?
Bin nun mal kein Programmierer, deswegen such ich ja hier nach Unterstützung.

Die ganzen Bezeichner wurden von mir vor einiger Zeit übernommen und leider recht konsequent analog fortgeführt. Seit einigen Wochen ist das ganze am Laufen und ich habe auch schon einiges "korrigiert", bzw. ins Englische übersetzt (das DeutschEnglisch hat auch massiv gestört). Aber ich verstehe nicht weshalb man dann in all den Foren deswegen in dem Ton so angequatscht wird..

Alsoo.. hier erst mal die CREATE TABLES (um einige Zellen verkürzt):
Code:
CREATE TABLE `tabkundenadressen` (
  `RFirma1` varchar(80) COLLATE latin1_german2_ci NOT NULL,
  `RFirma2` varchar(80) COLLATE latin1_german2_ci DEFAULT NULL,
  `RStrasse` varchar(100) COLLATE latin1_german2_ci DEFAULT NULL,
  `RPLZ` varchar(10) COLLATE latin1_german2_ci NOT NULL,
  `RStadt` varchar(50) COLLATE latin1_german2_ci NOT NULL,
  `RLand` varchar(50) COLLATE latin1_german2_ci NOT NULL,
  `RTelefon` varchar(20) COLLATE latin1_german2_ci DEFAULT NULL,
  `RFax` varchar(20) COLLATE latin1_german2_ci DEFAULT NULL,
  `2009` int(11) DEFAULT NULL,
  `2010` int(11) DEFAULT NULL,
  `2011` int(11) DEFAULT NULL,
  `2012` int(11) DEFAULT NULL,
  `2013` int(11) DEFAULT NULL,
  `2014` int(11) DEFAULT NULL,
  `timestamp` timestamp NULL DEFAULT NULL,
  `Kundennummer` int(5) NOT NULL,
  PRIMARY KEY (`IndexKu`),
  UNIQUE KEY `index_rfirma1_kundennummer` (`Kundennummer`,`IndexKu`,`RFirma1`)
) ENGINE=MyISAM AUTO_INCREMENT=4100 DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
Code:
CREATE TABLE `tabrechnung` (
  `Rechnungsnr` int(10) NOT NULL AUTO_INCREMENT,
  `ReBrutto` int(11) NOT NULL DEFAULT '0',
  `bezBetrag` int(11) DEFAULT '0',
  `bezDatum` date DEFAULT NULL,
  `KundennrR` int(5) DEFAULT NULL,
  `RDatum` date DEFAULT NULL,
  `lock` tinyint(1) DEFAULT '0',
  `ArtikelSumNet` int(11) DEFAULT NULL,
  `VerpackungR` int(11) DEFAULT '0',
  `VersicherungR` int(11) DEFAULT '0',
  `Fracht` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`Rechnungsnr`),
  UNIQUE KEY `auftrag_rechnungsnr` (`AuftragsnrR`,`Rechnungsnr`)
) ENGINE=MyISAM AUTO_INCREMENT=15202 DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
Ich habe auch gerade versucht die VIEW neu zu erstellen, mit der Workbench und mit dem Query-Browser, aber wenn ich für die Kundennummer keinen Alias angebe wird beim Speichern der VIEW jeweils ein Alias eingefügt. Immer:
Code:
`tabrechnung`.`KundennrR` AS `KundennrR`,
Damit hab ich dann trotzdem auch noch mal versucht die Prozedur zu starten, aber er konnte wieder diese Spalte in der View nicht finden.
Mit Zitat antworten
  #10  
Alt 10.04.2014, 10:27:44
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: View in Procedure verwenden

Zitat:
Zitat von Daktari Beitrag anzeigen
Ich wundere mich schon etwas über den Ton hier... Hab doch ganz normal gefragt, oder nicht?
Code:
ERROR 1072 (42000): Key column 'IndexKu' doesn't exist in table
Egal. MyISAM -> Schrott aus dem letzen Jahrtausend. Keine referentielle Integrität zwischen den Tabellen. Unnormalisiert (was sollen die Jahreszahlen da, kommt da 2015 eine neue Spalte dazu?), Beträge als INT. Zeitverschwendung.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Was bedeutet der Algorythmus MERGE beim Erstellen einer VIEW jensgae MySQLi/PDO/(MySQL) 0 05.01.2014 16:55:57
MySQL View auf fremde (nicht lokale) DBs? Eisregen121 MySQLi/PDO/(MySQL) 0 23.04.2010 13:26:51
downgrading zu MySQL 4.0 (VIEW ersetzen) p.falk MySQLi/PDO/(MySQL) 0 24.01.2009 18:19:23
Store Procedure SkySurfer MySQLi/PDO/(MySQL) 0 01.04.2007 20:33:59
PROCEDURE printer.compare can't return a result set in the given context DominikJ MySQLi/PDO/(MySQL) 0 27.11.2006 15:06:04


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:53:37 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt